2011-07-27 10 views
0

私はLucene .NetでXML文書の内容を索引付けしようとしているプロジェクトを開始しています。私が見つけた小さな文書では、索引は単一の文字列値を持つfiledsのみで構成されているようです。インデックスを作成しようとしているデータは、単純なキー値のペアよりも少し複雑です。ここでLucene .Net-キー/値がより複雑なインデックスを作成するための良い方法は何ですか?

Iからインデックスを生成したいXML文書の例です。だから私は「記述」の子要素にちなんで名付けられたフィールドが、何が子ノードについてを作成する見ることができました

<descriptor> 
    <asset guid="2AA7C8F9-2CB1-4A81-9421-C09F1D85939E" generated-date="2011-07-30" generated-by="hw/AutoMfg" generated-with="PMS"> 

    <!-- information about where the asset can be used --> 
    <target> 
     <localization>en-us</localization> 
     <localization>es-us</localization> 
     <environment>desktop</environment> 
     <environment>mobile</environment> 
    </target> 

    <!-- all contents of an asset must have the same version --> 
    <version-information> 
     <version-number source="content">9.1.123.4</version-number> 
     <version-number source="manufacturing">9.1.123.4</version-number> 
     <release-label>9.1</release-label> 
    </version-information> 

    <!-- catalog information about the primary role of the asset --> 
    <role> 
     <namespace>parent.type.family.some.thing</namespace> 
     <mime-type>text/html</mime-type> 
     <hwid>abc1234</hwid> 
    </role> 

    </asset> 
</descriptor> 

内に?このデータをどのように索引化できますか?各フィールドの値を表すための区切り文字列を作成する必要がありますか?

例えば フィールド: "ターゲット" 値: "ローカリゼーション:EN-US; ES-たちの環境:デスクトップ、モバイル| ...

は私がに上記の私の例のように私のデータを平らする必要がありますか?!。それのように多くは、あなたが取得するとどのようにではなく、データの形状よりも何を中心に展開しいずれにせよ、私が開始する - インデックスそれ

おかげトリッキーの

答えて

4

種類は、具体的なアドバイスを与えるためにSimone Chiarettaの優れたlucene.netシリーズ(12345)。 Luceneのは基本的にフラットな、しかし深いしばらくすることが可能である

Target-Localization:en-us 
Target-Localization:es-us 
Target-Environment:desktop 
Target-Environment:mobile 

:たくさんのに役立ちます一つの考え方は次のように指定した文書のインデックスと同じフィールドを複数回、あなたはおそらく何かを作ってあげることができるようにということです新しい面白い方法で平らになっています。

関連する問題