2012-09-17 103 views
2

因此,虽然asciifoldingè变成e它不会过滤出像`这样的单一口音,对吧?那我该如何摆脱它们呢?例如,我想索引O`Learys,并且能够搜索olearys,O learys,o`learys的任何变体。Elasticsearch,过滤器的口音

+0

这应该是WordDelimiterFilterFactory的工作,请查看它。 – javanna

+0

我确实看过[that](http://www.elasticsearch.org/guide/reference/index-modules/analysis/word-delimiter-tokenfilter.html),但不会将它分成“o” ''''''learys'''因此不符合'''olearys'''? – Yeggeps

+0

好吧,所以我尝试了WordDelimiter,但是正如我所料,它不会匹配''olearys''',但它会匹配'''learys''''''learningys''。 – Yeggeps

回答

3

我不认为有可能使O`Learys使用分析器,标记器或弹性搜索附带的过滤器同时匹配olearysO learys。它需要检测`的存在和索引O`Learys两次:首先作为一个标记olearys,然后作为两个标记olearys。它可以通过只使用自定义标记过滤器来完成。

作为一种变通方法,可以使双方olearyso`learys通过使用Mapping Char Filter输入的字符删除到`匹配O`Learys

+0

谢谢!它工作得很好,它实际上也匹配'''learys''',因为我已经在分析器中有一个n-gram过滤器。 – Yeggeps