测试数据:
curl -XPUT 'localhost:9200/customer/external/1?pretty' -d '{ "body": "this is a test" }'
curl -XPUT 'localhost:9200/customer/external/2?pretty' -d '{ "body": "and this is another test" }'
curl -XPUT 'localhost:9200/customer/external/2?pretty' -d '{ "body": "this thing is a test" }'
我的目标是获取文档中短语的出现频率。
我知道如何获得文档中术语的频率:
curl -g "http://localhost:9200/customer/external/1/_termvectors?pretty" -d'
{
"fields": ["body"],
"term_statistics" : true
}'
而且我知道如何计算包含给定短语的文档(使用match_phrase或span_near查询):
curl -g "http://localhost:9200/customer/_count?pretty" -d'
{
"query": {
"match_phrase": {
"body" : "this is"
}
}
}'
如何获得词组的频率?
最佳答案
您可以使用termvectors。如documentation所写
您必须达到术语频率-在示例中,您可以看到doc中有john doe的频率。请注意,termvector复制了对其应用字段的磁盘空间占用
关于Elasticsearch:获取给定文档中的短语频率,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46569177/