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>

我熟悉工作索引、搜索和分面简单文档,但我什至很难找到一个起点 =(

我应该简单地使用两个集合并加入吗?

4

1 回答 1

0

如果专业的数量是有限的并且事先已知,您可以尝试跟随。

不是有两个字段存储专业和能力,而是有一个包含“ability_of_a_specialty”的字段

例如,

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

现在,将上述属性转换为 Lucene 文档应该很简单。

于 2013-04-10T23:05:50.083 回答