跳到主要内容

Elasticsearch

https://www.elastic.co/

Maven 依赖

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

API

ElasticsearchEmbeddingStore 有 2 种实现:

  • 使用近似 kNN 查询ElasticsearchConfigurationKnn 配置类(默认)。
  • 使用 scriptScore 查询ElasticsearchConfigurationScript 配置类。请注意,此实现使用余弦相似度。

通用选项

要创建 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();

示例