我正在将应用程序从dtSearch迁移到elasticsearch,并希望在不改变最终用户流程的情况下保持相同的功能。我遇到的主要问题是词干。我们允许用户以dtSearch格式指定他们自己的词干规则:
3+ies -> y
3+ing ->其中3是前面的字符数,ies是后缀,y是要替换的内容。是否可以为elasticsearch指定自定义算法(好的...lucene引擎),这样用户就不必更新他们的词干规则来符合新的搜索服务?或者这两种方法是相互排斥的?
发布于 2016-09-16 04:03:44
对于痛苦的、极其肮脏的解决方案,您可以使用正则表达式。
否则,你必须创建你自己的Elasticsearch分析插件(用java实现一个令牌过滤器,它可以做你想做的事)。
https://www.elastic.co/guide/en/elasticsearch/plugins/2.4/plugin-authors.html
如果您可以在内存中将词干规则表示为DFA,那么它的性能会最好。有几个java自动机库你可以使用。(例如http://www.brics.dk/automaton/faq.html)
https://stackoverflow.com/questions/39497254
复制相似问题