【问题标题】:Elasticsearch filter via number of mentionsElasticsearch 通过提及次数过滤
【发布时间】:2015-02-03 10:13:37
【问题描述】:

我正在尝试编写一个查询,它将返回有关某些关键字的文章,但我希望这些文章仅显示给定关键字是否在我正在使用以下查询的文章中被提及 5 次但没有结果

  {
   "query":{

      "multi_match":{
         "query":"Apple",
         "operator":"AND",
         "fields":[
            "Text"
         ]

      }
      ,"min_term_freq" : 5
   },
   "sort":{
      "Date":{
         "order":"desc"
      }
   }
}

【问题讨论】:

    标签: elasticsearch elastica


    【解决方案1】:

    我不相信您列出的任何 min_term_freq 选项。 但是你可以在过滤器中使用脚本来实现相同的 -

    {
      "query": {
        "filtered": {
          "filter": {
            "script": {
              "script": "_index['Text']['apple'].tf() > 5"
            }
          }
        }
      }
    }
    

    【讨论】:

    • 您的查询工作正常,但如果我将单词从 apple 更改为任何其他单词,它就不起作用了。
    • 它应该是一个现有术语...您尝试了其他什么术语>
    • 我想我遇到了这个查询不接受两个词的问题,比如 tim take。那我该如何解决呢?
    • 这仅接受 tim 或 take 之类的标记化术语,而不接受“tim take”
    • 写AND条件 _index['Text']['time'].tf() > 5 && _index['Text']['took'].tf() > 5
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多