.netでluceneを使用しており、「照合にとらわれない」検索を実装する方法が必要です。これが正しい用語かどうかはわかりませんが、必要なのは[Žuf]というユーザーがいる場合です。 [zuf]を選択することで彼を見つけることができます。また、ユーザー名が[zuf]で、[Žuf]と入力した場合は、他の方向でも彼を見つけることができます。これですが、もっと賢くしたいです
これに関するアイデアはありますか?
ありがとうアルミール
.netでluceneを使用しており、「照合にとらわれない」検索を実装する方法が必要です。これが正しい用語かどうかはわかりませんが、必要なのは[Žuf]というユーザーがいる場合です。 [zuf]を選択することで彼を見つけることができます。また、ユーザー名が[zuf]で、[Žuf]と入力した場合は、他の方向でも彼を見つけることができます。これですが、もっと賢くしたいです
これに関するアイデアはありますか?
ありがとうアルミール
Lucene for Javaには、Mavenパッケージに次のジョブを実行するフィルターが含まれています:ICUFoldingFilter(http://lucene.apache.org/core/3_6_1/api/all/org/apache/lucene/analysis/icu/ICUFoldingFilter.html) lucene-icu(少なくともバージョン3.6.1では)。Lucene.netにそのようなライブラリが存在するかどうかはわかりませんが、ICUに基づいているため、.NETでコードを書き直すことができるはずです。
ICUFoldingFilterとは:
検索用語の折りたたみをUnicodeテキストに適用し、UTR#30文字の折りたたみからの折りたたみを適用するTokenFilter。
このフィルターは、レポートからユニコードテキストに次の折りたたみを適用します。
- Accent removal - Case folding - Canonical duplicates folding - Dashes folding - Diacritic removal (including stroke, hook, descender) - Greek letterforms folding - Han Radical folding - Hebrew Alternates folding - Jamo folding - Letterforms folding - Math symbol folding - Multigraph Expansions: All - Native digit folding - No-break folding - Overline folding - Positional forms folding - Small forms folding - Space folding - Spacing Accents folding - Subscript folding - Superscript folding - Suzhou Numeral folding - Symbol folding - Underline folding - Vertical forms folding - Width folding
さらに、Default Ignorablesが削除され、テキストはNFKCに正規化されます。すべての折りたたみ、ケースの折りたたみ、および正規化のマッピングが再帰的に適用され、完全に折りたたまれて正規化された結果が保証されます。
ASCIIFoldingFilterを見てください。LowerCaseFilterと組み合わせると、必要なことを実行できます。