【问题标题】:Wildcard on multiple columns in Elastic search query弹性搜索查询中多列的通配符
【发布时间】:2019-03-08 10:26:25
【问题描述】:

我需要匹配用户在弹性搜索中跨 2 个属性传递的输入,并且它需要是通配符搜索。

我使用的是 AWS-ES 6.4 版

当我查询一个属性时,结果还可以,但是当我同时包含这两个属性时,它会给我 400 状态代码。

查询哪个有效:

 {"query": 
{"bool": {"should": [  
{"wildcard": { "phone1.searchTerm": "*1234*" }} 
]}}
}

查询失败:(phone1 和 phone2 都) 是否存在对应该/必须条件的绑定以使其内部只有一个通配符?

{"query": 
{"bool": {"should": [  
{"wildcard": { "phone1.searchTerm": "*1234*" }}    ,
{"wildcard": { "phone2.searchTerm": "*1234*" }}    ]}}
}

这和弹性搜索版本有关系吗?

【问题讨论】:

  • 你能添加完整的错误信息,错误为 400 吗?
  • 错误是由于映射问题,phone2中的searchTerm被定义为long。正确检查错误帮助我确定了这一点。

标签: amazon-web-services elasticsearch elasticsearch-5 aws-elasticsearch


【解决方案1】:

它将按如下方式工作:-

{
"query": {
    "bool": {
        "must": [
            {
                "wildcard": {
                    "Author": "roh*"
                }
            },
            {
                "wildcard": {
                    "Title": "q*"
                }
            }
        ]
    }
}
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-05
    • 1970-01-01
    相关资源
    最近更新 更多