我正在使用Elastic Search处理搜索引擎 - 我正在使用它的Java API。并且想为我的查询配置一个regexp过滤器,特别是“以”开头“过滤器。
假设我的索引中有这些标题:
如果我想从字母t或th开始准确地得到结果,我应该使用什么正则表达式?
搜索后的正确结果
我尝试过使用:
^t.* OR ^[t.*]
但不会返回任何结果。即使文档说明了,起始锚^也不适用于弹性。
t.* OR [t.*]
但它的作用就像前缀过滤器一样,并包含结果“jimmy and the flock”
注意:
BTW,我正在使用ES版本1.0.0
答案 0 :(得分:1)
ElasticSearch博客上有一个特殊页面可以准确回答您的问题:http://www.elasticsearch.org/blog/starts-with-phrase-matching/; 正如pickypg建议的那样,这是一个映射问题,你必须设置一个特殊的分析器,它结合了“关键字”标记器和“小写”过滤器。