ドイツ語の言語アナライザーを使用して一部のコンテンツをトークン化しています。私は基本的に "小文字"、 "german_stop"、 "german_keywords"、 "german_normalization"、 "german_stemmer"のマクロフィルタであることを知っています。言語アナライザー(ドイツ語)を構成する方法やカスタムノーマライザーを作成する方法
私の問題はノミラル化フィルタと関係があります。ここにはElasticsearch DocumentationとLucene Implementationのフィルタがあります。問題は、ueとoeがドイツ語の文字ä、öとüとして扱われ、したがってa、o、uに変換されるということです。
第2の変換は良好ですが、第1の変換はそれが解決するよりも多くの問題につながります。本当にä、ü、öを表すドイツのテキストには、通常、ae、ue、oeはありません。彼らが実際に現れる時代のほとんどは、「Aearodynamik」(空気力学)のようなラテン語や英語に由来する外国語の中にあります。フィルターは 'Ae'を 'Ä'と解釈し、 'A'に変換します。これはトークンとして 'arodynamik'を生成します。通常、検索語もそのフィルタで正規化されるため、これは問題にはなりません。しかし、これはワイルドカード検索と組み合わせると問題になります:
「FooEdit」のような言葉を想像してみましょう。これは 'foodit'にトークン化されます。 'edit OR * edit *'(ユーザーが 'edit'を検索したときの私の通常の検索)の検索では、 'edit'の 'e'が失われてしまい結果が得られません。私のコンテンツにはそのような言葉がたくさんあり、人々は部分的な言葉を探しているので、それは端正なケースではないようです。
私の質問は、 'ae - > a'変換を取り除く方法は何ですか?私が理解しているのは、これがGerman2 snowball algorithmの一部なので、これはおそらく変更できません。それは、私が正規化全体のステップを取り除かなければならないことを意味するのでしょうか、私が好きではない部分を取り除くだけで私の独自のバージョンのSnowballアルゴリズムを提供できますか?(カスタム正規化のためのスノーボールアルゴリズム)?あなたが言ったように
乾杯
トム
問題は、ワイルドカード、ファジー、正規表現のクエリ節が解析されないため、「エアロディー」が「arodynamik」と一致しないことです。 – femtoRgon
@femtoRgon私は正しく読まなかった: – Slomo