2016-09-14 79 views
1

我正在将应用程序从dtSearch移动到elasticsearch,并希望在不更改最终用户过程的情况下保留相同的功能。我遇到的主要问题是干扰。我们允许用户在dtSearch格式指定自己所产生的规则:Elasticsearch自定义填充算法

3+ies -> y 
3+ing -> 

3是前面的字符数,该ies是后缀和y是做什么用替换它。是否有可能为elasticsearch指定一个自定义算法(以及... lucene引擎),以便用户不必更新其词干规则以符合新的搜索服务?或者这两种方法是相互排斥的?

回答

0

对于一个非常肮脏的解决方案,您可以使用正则表达式。

https://www.elastic.co/guide/en/elasticsearch/reference/2.4/analysis-pattern_replace-tokenfilter.html


否则,你就必须创建自己的Elasticsearch分析插件(与令牌过滤器实现,你想要做什么,在Java)。

https://www.elastic.co/guide/en/elasticsearch/plugins/2.4/plugin-authors.html

它会执行最好的,如果你可以表达你所产生的规则为DFA在内存中。有几个Java自动机库可以使用。 (例如http://www.brics.dk/automaton/faq.html