如何在弹性搜索查询中向多个字段添加首选项



我有以下数据: 制造斯特:施乐 型号: 设计喷气机 1050C

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

但它是匹配的 佳能 设计捷 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。

通过使用boost可以给出更多的偏好。参考这里

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

相关内容

最新更新