在Solr中存储和搜索数据对

时间:2013-04-10 11:42:03

标签: solr lucene

我正在试图弄清楚如何存储和搜索数据对。我有一个类似于下面的文档,我的目标是执行一个搜索,返回具有给定专业的所有文档,然后通过匹配的专业能力对结果进行排序:

<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>

我熟悉工作索引,搜索和面对简单的文档,但我很难找到一个起点_(

我应该只使用两个集合并加入吗?

1 个答案:

答案 0 :(得分:0)

如果专业数量有限且事先已知,您可以尝试以下。

不要让两个字段存储专业和能力,只需要包含“ability_of_a_specialty”的一个字段

例如,

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

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