【问题标题】:How to express optional matching using Query String Query如何使用查询字符串查询表示可选匹配
【发布时间】:2018-11-06 12:24:00
【问题描述】:

我有一个使用query string dsl 的查询,我希望它返回匹配所有三个断言的结果。 (状态 = 活动,价格 = 100,语言 = 英文)。

如何使language 参数成为可选参数,如果不匹配而不是根本不匹配,则得分较低?

(status:"active") AND (price:100) AND (language:"en")

【问题讨论】:

    标签: elasticsearch elasticsearch-query


    【解决方案1】:

    你可以试试这个

    (status:active AND language:en) OR (price:100 AND language:en)
    

    或者像这样的较短版本:

    +status:active +price:100 language:en
    

    使用boolmatch 查询重写的等效查询是这个:

    {
      "bool": {
        "must": [
          {
            "match": {
              "status": "active"
            }
          },
          {
            "match": {
              "price": 100
            }
          }
        ],
        "should": {
          "match": {
            "language": "en"
          }
        }
      }
    }
    

    【讨论】:

    • 这个运气好吗?
    猜你喜欢
    • 1970-01-01
    • 2023-03-21
    • 2011-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多