跳到主要内容

Elasticsearch

https://www.elastic.co/

Maven依存関係

<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-elasticsearch</artifactId>
<version>1.0.0-beta4</version>
</dependency>

API

ElasticsearchEmbeddingStoreには2つの実装があります:

  • ElasticsearchConfigurationKnn設定クラスを使用した近似kNNクエリ(デフォルト)。
  • ElasticsearchConfigurationScript設定クラスを使用したscriptScoreクエリ。この実装はコサイン類似度を使用していることに注意してください。

共通オプション

ElasticsearchEmbeddingStoreインスタンスを作成するには、ElasticsearchのRestClientを提供する必要があります:

String apiKey = "VnVhQ2ZHY0JDZGJrU...";
RestClient restClient = RestClient
.builder(HttpHost.create("https://localhost:9200"))
.setDefaultHeaders(new Header[]{
new BasicHeader("Authorization", "ApiKey " + apiKey)
})
.build();

注意:

RestClientインスタンスの作成方法については、Elasticsearchドキュメントを参照してください。

その後、埋め込みストアを作成できます。デフォルトでは近似kNNクエリ実装を使用します。

ElasticsearchEmbeddingStore store = ElasticsearchEmbeddingStore.builder()
.restClient(restClient)
.build();

ElasticsearchConfigurationKnn設定(デフォルト)

前述のコードは以下と同等です:

ElasticsearchEmbeddingStore store = ElasticsearchEmbeddingStore.builder()
.configuration(ElasticsearchConfigurationKnn.builder().build())
.restClient(restClient)
.build();

ElasticsearchConfigurationScript設定

以前の、より遅い動作を使用したい場合は、ElasticsearchConfigurationScript設定クラスを使用できます:

ElasticsearchEmbeddingStore store = ElasticsearchEmbeddingStore.builder()
.configuration(ElasticsearchConfigurationScript.builder().build())
.restClient(restClient)
.build();