0

我正在尝试从弹性搜索插件中的 termvectorresponse 获取术语列表。我想访问与条款相关的所有统计数据,并且无法弄清楚如何做到这一点。

发出 TermVectorsRequest 后...

TermVectorsRequest tvReq = new TermVectorsRequest(request.param("index"), request.param("type"), request.param("id"));
tvReq.termStatistics(true);
tvReq.selectedFields(request.param("field"));

并得到客户的回应...

TermVectorsResponse tvResponse = client.termVectors(tvReq).get();

我可以访问 id、索引等。在字段中我得到“内容”,这是我想要的字段名称。从那里虽然看起来我可以跑......

tvResponse.getFields().terms("some term here")

其中返回的条款对象可以访问我想要的统计信息。

不过,我对此有一些问题。一是只有“内容”似乎是非空的。在弹性的 termvectors 端点中,我得到了几个不同的术语,我在这里尝试插入这些术语。第二,我想获得一个术语列表,而不是输入我想要的术语。

我该怎么做呢?

谢谢

4

1 回答 1

0

弄清楚了。您可以使用术语的插入器。在 .terms 上,您必须将其传递给该字段,然后您将返回 Terms 对象。从中您可以使用 .iterator 来获取每个单独的术语,并对它们做任何您想做的事情。

于 2018-04-11T16:39:56.337 回答