5

Lucene.netを使用して、Webサイトのコンテンツやドキュメントなどのインデックスを作成しています。インデックスは非常に単純で、次の形式になっています。

LuceneId-Luceneの一意のID(TypeId + ItemId)
TypeId-テキストのタイプ(例:ページコンテンツ、製品、公開ドキュメントなど)
ItemId-WebページID、ドキュメントIDなど。
テキスト-索引付けされたテキスト
タイトル-検索結果とともに表示するWebページのタイトル、ドキュメント名など

多言語コンテンツを提供するように適応させるために、次のオプションがあります。

  1. 言語ごとに個別のインデックスを作成します。例:Lucene-enGB、Lucene-frFRなど。
  2. 1つのインデックスを保持し、それに「言語」フィールドを追加して、結果をフィルタリングします。

どちらが最良のオプションですか?それとも別のオプションがありますか?以前は複数のインデックスを使用したことがないので、2番目のインデックスに傾いています。

4

2 に答える 2

3

[2] は行っていますが、問題の 1 つは、言語によって異なるアナライザーを使用できないことです。必要な言語のストップワードを組み合わせましたが、ステミングなど、アナライザーが提供するより高度なものの機能を失います。

于 2009-03-03T17:02:23.067 に答える
2

オプション 1 と 2
を省略できます。1 つのインデックスを使用でき、アラビア語を含むフィールドはそれぞれに 2 つのフィールドを作成します。フィールド「テキスト」がある場合、アラビア語または英語のコンテンツが含まれる可能性があります ==>

  • " Text "用に 2 つのフィールドを作成します。1 つのフィールド " Text " は標準アナライザーでインデックス付け/検索され、もう 1 つのフィールド " Text_AR " は arabicAnalyzer でインデックス付け/検索されます。それを達成するために PreFieldAnalyzerWrapperを使用できます
于 2013-03-26T20:39:13.310 に答える