2009-08-17 9 views
1

検索条件としてLucene.NETをテストしていますが、いくつか質問があります。言語ごとの検索と並べ替え

私たちはXML形式の文書を持っています。すべてのドキュメントには多言語のテキストが含まれています。言語と言語の数自体は文書によって異なります。文書のキーワードが特別な要素と言語属性でタグ付けされている

<document>This is a sample document, which is describing a <word lang="de">tisch</word>, a <word lang="en">table</word> and a <word lang="en">desk</word>.</document> 

:以下の例を参照してください。私はLuceneインデックスを作成していた場合

は、私はこのように、XML言語とキーワードのペア(私は私が持っている場合はわからない)からテキストの内容を抽出します。

This is a sample document, which is describing a tisch, a table and a desk. 

de - tisch 
en - table 
en - desk 

私にはわかりません例: - ドイツ語のtischという単語を含むすべての文書(他の言語のtischという単語を含む文書ではありません)。

また、実行時にソートを指定したいと思っています。 ユーザ指定の言語順に並べ替える(ユーザインタフェースに依存します)。例えば、我々は二つの文書がある場合:

<document>This is a sample document, which is describing a <word lang="de">tisch</word>.</document> 
<document>This is a another sample document, which is describing a <word lang="en">table</word>.</document> 

と「ティッシュOR表」による英語のインターフェース検索でユーザーを私が第一、第二の結果を取得したいです。

何か情報やアドバイスをいただければ幸いです。

多くの感謝!

答えて

1

オプションがどこにいるあなたは、作るために設計上の決定を持っている:

  • はMがされて、単一の各文書は、それが使用する各言語ごとにフィールドを持つインデックス、または
  • 使用M・インデックスを使用しますコーパス内の言語の数

マルチインデックスアプローチを使用すると、検索を特定の言語または言語セットに限定する方が簡単になります。他の言語を使用せずに、これらの言語のインデックスを検索するだけです。また、言語による並べ替えが容易になります。したがって、 が異なる言語のキーワードを必要とする「AND」検索が同じ文書に表示されていない場合は、Mインデックスアプローチを提案します。

例に基づいて、私は特別にタグ付けされていないドキュメントの部分が英語であると仮定します。そうであれば、英語の索引に別のフィールドとして文書テキストを追加することができます。他のインデックスでは、ドキュメントIDだけを格納するだけで済みます。これによりドキュメントIDが軽くなります。

関連する問題