【问题标题】:How to add preference to mutliple fields in elastic search query?如何在弹性搜索查询中为多个字段添加首选项?
【发布时间】:2017-11-06 16:01:50
【问题描述】:

我有以下数据: makeStr:施乐 modelStr: Designjet 1050C

我希望它匹配 施乐
Designjet 1050C Plus 打印机

但它是匹配的 佳能 DesignJet 1050C

目前我有这个查询

"query": {
      "bool": {
        "should": 
        {
          "multi_match": {
            "query": modelStr,
            "type": "most_fields",
            "fields": ['model.alphanum']
          }
        }
      ,
        "filter": [
          {
            "match": {
              "make.blur": makeStr
            }
          },
          {
            "match": {
              "model.blur": modelStr
            }
          }
        ]
      }
},
    "functions": [{
      "field_value_factor": {
        "field": "isMpsSupported",
        "factor": 1,
        "missing": 0
      }
    }],
    "boost_mode": "sum"
  }

我如何优先考虑 makeStr 以便它在搜索过程中同时考虑 makeStr 和 modelStr。

【问题讨论】:

    标签: javascript node.js string elasticsearch mapping


    【解决方案1】:

    使用 boost 可以给出更多的偏好。参考here

    像 makeStr^2 这样的东西应该可以工作。

    【讨论】:

      猜你喜欢
      • 2021-05-11
      • 1970-01-01
      • 2020-06-01
      • 2018-08-03
      • 2022-01-11
      • 2018-11-03
      • 1970-01-01
      • 2016-10-04
      • 1970-01-01
      相关资源
      最近更新 更多