首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在elasticsearch中如何根据数组中重复项的频率来过滤结果

问在elasticsearch中如何根据数组中重复项的频率来过滤结果
EN

Stack Overflow用户
提问于 2015-06-20 03:25:51
回答 1查看 206关注 0票数 2

我有一个包含大量关键字的数组字段,我需要根据这些数组中某个关键字重复的次数对文档进行排序。例如,如果我的字段名是“国籍”,而对于文档1,则由以下doc1国籍组成:

代码语言:javascript
复制
["US","UK","Australia","India","US","US"]

至于doc2国籍:

代码语言:javascript
复制
["US","UK","US","US","US","China"]

我只想把那些文件显示在"US“这个词出现超过3次的地方。这将只显示doc2。怎么做?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-22 12:13:15

您可以使用脚本来实现这一点。

代码语言:javascript
复制
{
      "query": {
        "filtered": {
          "filter": {
            "script": {
              "script": "_index['nationality']['US'].tf() > 3"
            }
          }
        }
      }
    }

在这段文字中,数组“国籍”被检查为"US“,计数由tf (术语频率)进行。现在,结果中只显示了术语频率大于3的文档。您可以了解有关筛选操作这里的更多信息。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30949939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档