我正在编写一个Elasticsearch插件,在这个插件中,我需要从某个字段中的指定中检索术语频率计数。目前我正在使用下面的查询,并从结果中读取命中数:
SearchResponse searchResponse = nodeClient
.prepareSearch(INDEX_NAME)
.setQuery(QueryBuilders.termQuery(TERM_FIELD, term))
.get();
然而,这需要多次(10-20次)并且似乎很慢。有没有办法使用Elasticsearch Java API并直接从反向索引中读取数据?
在Lucene中,我使用了一个名为totalTermFreq()
的函数,该函数直接从反向索引中读取该术语在所有文档中出现的总数。可以找到Lucene的函数文档here