弹性搜索:低级查询的宽容选项

时间:2018-07-19 08:59:18

标签: elasticsearch

我目前正在使用Elastic Search的Web API进行查询,但是我希望能够很好地处理类型不匹配的问题,例如在数字字段上使用prefix_match查询。

原因是因为我们启用了动态映射,我们不一定知道分配给每个字段的类型。

我知道某些高级查询(例如查询字符串查询)具有lenient选项,并且我想知道是否可以通过术语查询等低级查询获得类似的效果。

如果这不可能,我对如何实现自己想要的目标还有其他三个想法,但我希望有更好的方法:

1) 查看字段功能,并相应地修改查询。这似乎不太理想,因为我需要发出两个请求-我想知道是否可以在查询中添加一个可以检查字段类型的操作。

2) 使用前缀命名方案来标识类型,例如str_int_。再次看起来并不理想。

3) 将字段类型不明确(通过动态映射创建的任何内容)的查询重写为查询字符串查询。绝对有可能,但考虑到我们查询的复杂性,这并不是最简单的事情。

4) 处理应用程序中返回的错误。这将使得在实际错误发生时难以识别。这也具有不利的副作用,即当实际存在匹配项(类型不匹配项除外),即bool should的列表时,查询不返回任何内容。

希望我的问题有解决方案!

0 个答案:

没有答案