【发布时间】: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