elasticsearch:使用通配符搜索整数

我目前正在使用Tire Client进行elasticsearch。可以说我有一个字段,该字段在我的elasticsearch映射中被索引为很长的类型的字段。我正在尝试实现以下目标:

search.query {|query| query.string "30*", :fields => ['id']}

“ id”是我一直在谈论的领域。但是由于我在查询中指定了字段,所以通配符不起作用,最终我得到了唯一匹配的结果。

但是对_all搜索也可以执行相同的操作,因为字段类型无关紧要。我希望此通配符搜索有效,同时还要在该特定字段中搜索搜索关键字。有什么方法可以做到而无需更改我的映射?

回答:

感谢该脚本技巧上的@alex。终于我找到了行之有效的东西。!

所以我最终做了这个(简短地):

search.query do |query|

query.filtered do |f|

f.filter :script, {

:script => "doc['id'].value.toString() ~= '^30[0-9]*$'"

}

end

end

希望能帮助到你。

以上是 elasticsearch:使用通配符搜索整数 的全部内容, 来源链接: utcz.com/qa/413871.html

回到顶部