gpt4 book ai didi

java - 如何在Elasticsearch中以编程方式(在Java中)检索词 vector ?

转载 作者:行者123 更新时间:2023-12-02 22:39:47 25 4
gpt4 key购买 nike

我对ES还是很陌生,但是经过一段时间的搜索之后,我还没有找到任何示例来说明如何使用术语 vector 设置ES索引以及以后如何通过Java通过文档ID在Java中以编程方式检索它们。

此处描述了JSON变体的运行方式:https://www.elastic.co/guide/en/elasticsearch/reference/2.2/docs-termvectors.html

谁能为此提供Java“翻译”?

目前,我像这样创建索引:

CreateIndexRequestBuilder createIndexRequestBuilder = client.admin().indices().prepareCreate(indexName);
createIndexRequestBuilder.execute().actionGet();

并添加如下文档:
XContentBuilder sourceBuilder;
sourceBuilder = XContentFactory.jsonBuilder().startObject()
.field("text", text)
.field("type", "testType");
IndexRequest request = new IndexRequest(indexName, esContentType).source(sourceBuilder);
client.index(request);

这是我可以再次获取文档的方式:
GetResponse response = client.prepareGet(indexName, esContentType, id).execute().actionGet();

任何帮助将不胜感激。

最佳答案

好的,我终于弄清楚了我想要的东西(这个link也很有帮助)。因为这可能对其他人有帮助,所以我想在这里分享:

像这样创建索引:

CreateIndexRequestBuilder createIndexRequestBuilder = client.admin().indices().prepareCreate("indexName");
createIndexRequestBuilder.execute().actionGet();

try {
client.admin().indices().preparePutMapping("indexName").setType("docType")
.setSource(XContentFactory.jsonBuilder().prettyPrint()
.startObject()
.startObject("docType")
.startObject("properties")
.startObject("text").field("type", "string").field("index", "not_analyzed").field("term_vector", "yes").endObject()
.endObject()
.endObject()
.endObject())
.execute().actionGet();
} catch (IOException e) ...

这里是如何从ES检索术语 vector 的方法:
TermVectorsResponse resp = client.prepareTermVectors().setIndex("indexName")
.setType("docType").setId("docId").execute().actionGet();

XContentBuilder builder;
try {
builder = XContentFactory.jsonBuilder().startObject();
resp.toXContent(builder, ToXContent.EMPTY_PARAMS);
builder.endObject();
System.out.println(builder.string());
} catch (IOException e) ...

到目前为止,这对我仍然有效,但是如果有人有其他更好的解决方案,请随时分享。

关于java - 如何在Elasticsearch中以编程方式(在Java中)检索词 vector ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35944167/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com