NHibernate.Searchを多言語ウェブサイトに統合しようとしています。現在、このウェブサイトには多言語対応のクラスArticle
が含まれています。これは、言語固有のコンテンツを格納する別のクラス(Article_CultureInfo
)を持つことによって行われます。私は、フィールド/文書情報をマップするためにNhibernate.Search.Mapping
を使用していますnhibernate.search/lucene.net多言語アナライザ
Article_CultureInfo
-------
ID
ArticleId
CultureCode
PageTitle
Content
:Article
のフィールドは
Article
-------
ID
Name
そしてArticle_CultureInfo
があります。可能な場合は、言語に基づいて、ステミングや同義語解析などの検索機能を組み込みたいと考えています。 Lucene Analyzerは、コンパイル時/初期化時ではなく、実行時に指定できる方法はありますか?
それぞれのLuceneインデックスに格納されるPageTitle
のコンテンツを分析しているとします。このコンテンツは、CultureCode
の値に基づいて英語、フランス語、イタリア語などです。したがって、この値に基づいてアナライザを変更する必要があります。私はカスタムMultilingualAnalyser
を実装しようとしましたが、利用可能なデータは解析する文字列、つまりPageTitle
の値だけです。それだけで、私はその言語を推論することはできません。 (私は言語検出テクニックを調べることができましたが、それは何かを既に分かっており、100%信頼できるものではありません)。
もし私がトークンから離れていたら、オブジェクトのインスタンスでは、私はCultureCode
の値を取得し、それに応じて分析することができます。どんなアイデアも大歓迎です。NHibernate.Searchは非常にうまく統合されているので、Lucene.Netを直接使用しないでください。
ありがとうございます!