弹性搜索嵌套查询字符串?

问题描述 投票:0回答:1

我想使用通配符在2个不同的列中搜索2个值,但它没有按预期运行2个值,但在单个query_string上运行正常

这适用于单列

{
  "query": {
    "query_string" : {
      "default_field" : "Phone",
      "query" : "*568072*"
    }
  }
}

我尝试将其扩展为使用2个具有2个不同值的列。

{
    "query":
    {
        "bool":
        {
            "should": [
                {
                    "query_string":
                    {
                        "query": "*Chicago*",
                        "fields": ["Sources"]
                    },
                    "query_string":
                    {
                        "query": "*493*",
                        "fields": ["Phone"]
                    }


                }


            ]
        }
    }
}

我哪里错了?

elasticsearch
1个回答
0
投票

您的查询中有错误。你在should数组中有一个大对象,它有两个相同的键没有意义。相反它应该是这样的对象数组:

{
  "query": {
    "bool": {
      "should": [
        { "query_string": { "query": "*Chicago*", "fields": ["Sources"] } },
        { "query_string": { "query": "*493*", "fields": ["Phone"] } }
      ]
    }
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.