【问题标题】:consider every word in elasticsearch query考虑弹性搜索查询中的每个单词
【发布时间】:2019-02-07 09:55:19
【问题描述】:

考虑这个短语:lorem ipsum quid

我想查询多个字段并更喜欢所有单词都存在的答案。换句话说,我不想忽略某些单词,我想提升考虑所有单词的查询。

我可以通过simple_query_string 并在每个单词前添加+ 来实现这个目标:

query: {
  simple_query_string: {
    query: "lorem +ipsum +quid",
    default_operator: "and",
    fields: ["f1", "f2", "f3"]
  }
}

不过,这似乎很奇怪,它迫使我编辑用户查询并通过正则表达式将空格替换为+,这是一种修修补补。

弹性搜索有没有办法强制(在 match 或 multi_match 或我不知道的东西中)考虑每个单词?

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    不确定这是否能完成你的工作,但可以像这样尝试 - termmust

    {
      "query": {
        "bool": {
          "must": [
            {
              "term": {
                "f1": "lorem ipsum quid"
              }
            },
            {
              "term": {
                "f2": "lorem ipsum quid"
              }
            },
           {
              "term": {
                "f3": "lorem ipsum quid"
              }
            }
          ]
        }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2016-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-11
      • 2016-11-25
      • 2018-04-14
      相关资源
      最近更新 更多