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