Elasticsearch
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();