首页 > 解决方案 > Elasticsearch 中的 MUST 和 MUST_NOT 查询

问题描述

我已使用包含数据“A”和“B”的元数据“User_Id”为文档编制索引。我正在尝试检查文件“A NOT B”。我无法获得所需的输出。我被限制不使用“查询字符串查询”并使用“NOT”运算符。must_not 不支持 multi_match 吗?

   {
      "from": 0,
      "size": 24,
      "query": {
        "bool": {
          "must": [
            {
              "multi_match": {
                "query": "A",
                "fields": ["User_Id"],
                "fuzziness": "AUTO"
              }
            }
          ],
          "must_not" :[
             {
              "multi_match": {
                "query": "B",
                "fields": ["User_Id"],
                "fuzziness": "AUTO"
              }
            }
          ]
        }
      }
      }

标签: elasticsearch

解决方案


您需要删除模糊自动。此设置允许字符串中的近似值:具有模糊性“AUTO”的查询“AUTO13273”将匹配 AUTO13272 和 AUTO13273,因为这两个字符串之间的距离仅为 1。

请参阅此处的模糊性文档


推荐阅读