2016-09-14 10 views
1

私はアプリケーションをdtSearchからelasticsearchに移動する過程にあり、エンドユーザーのプロセスを変更することなく同じ機能を維持したいと考えていました。私が問題を抱えている主な原因は、ステミングです。私たちは、ユーザがスクリーンショットdtSearch形式で自分の語幹ルールを指定することができます:3は、先行する文字の数があるElasticsearchカスタムステミングアルゴリズム

3+ies -> y 
3+ing -> 

は、iesは接尾辞であるとyはと交換するものです。ユーザが新しい検索サービスに準拠するようにそのステミングルールを更新する必要がないように、elasticsearch(もちろん、luceneエンジン)のカスタムアルゴリズムを指定することは可能ですか?または、2つの方法が互いに排他的ですか?

答えて

0

非常に厄介な解決策のために、正規表現を使用できます。

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


そうでなければ、(Javaで、何をしたいんトークン・フィルタの実装で)独自のElasticsearch解析プラグインを作成する必要があります。

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

あなたがメモリ内にDFAとしてあなたの語幹ルールを表現することができればそれは最高の実行ます。そこにいくつかのJavaオートマトンのライブラリがあります。 (例えば、http://www.brics.dk/automaton/faq.html