0

データペアを保存および検索する方法を理解しようとしています。以下のようなドキュメントがあり、私の目標は、特定の専門分野を持つすべてのドキュメントを返す検索を実行し、一致する専門分野の能力で結果を並べ替えることです。

<doc>
    <id>123</id>
    <firstName>Joe</firstName>
    <lastName>Bloggs</lastName>
    <specialties>
        <specialty>
            <type>Foo</type>
            <ability>1</ability>
        </specialty>
        <specialty>
            <type>Bar</type>
            <ability>2</ability>
        </specialty>
        <specialty>
            <type>Baz</type>
            <ability>2</ability>
        </specialty>
    </specialties>
</doc>

私は単純なドキュメントのインデックス作成、検索、およびファセット化の作業に精通していますが、これで開始点を見つけるのに苦労しています =(

単純に 2 つのコレクションを使用して結合する必要がありますか?

4

1 に答える 1

0

専門分野の数が有限であり、事前にわかっている場合は、以下を試してみてください。

専門分野と能力を格納する 2 つのフィールドを使用する代わりに、「ability_of_a_specialty」を含む 1 つのフィールドのみを使用します。

例えば、

<specialties>
    <Foo_ability> 1 </Foo_ability>
    <Bar_ability> 2 </Bar_ability>
    <Dummy_ability> 0 </Dummy_ability>
    ...
</specialties>

これで、上記の属性を Lucene ドキュメントに変換するのは簡単です。

于 2013-04-10T23:05:50.083 に答える