我试图计算整个索引(术语收集频率)中特定术语出现的总次数.我试图通过使用术语向量来实现这一点,但是这仅限于单个文档.即使在指定文档中存在术语的情况下,响应似乎最大化在某个doc_count(在field_statistics中),这使我怀疑它的准确性.
请求:
http://myip:9200/clinicaltrials/trial/AVmk-ky6XMskTDwIwpih/_termvectors?term_statistics=true
这里使用的文档ID是"AVmk-ky6XMskTDwIwpih",尽管术语统计不应该特定于文档.
响应:
这就是我对其中一个领域的"癌症"一词所得到的:
"cancer" : { "doc_freq" : 5297, "ttf" : 10587, "term_freq" : 1, "tokens" : [ { "position" : 15, "start_offset" : 115, "end_offset" : 121 } ] },
如果我总计所有字段的ttf,我得到18915.但是,"癌症"的实际总术语频率实际上是542829.这使我相信它将term_vector统计数据限制为索引中的文档子集.
这里的任何建议将不胜感激.
我相信您需要根据elasticsearch 文档将term_statistics设置为true :
术语统计将term_statistics设置为true(默认为false)将返回
总术语频率(一个术语在所有文档中出现的频率)
文件频率(包含当前术语的文件数)
默认情况下,由于期限统计信息可能会对性能产生严重影响,因此不会返回这些值。