测试数据:

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/

10-15 19:27