【问题标题】:Storing and searching data pairs in Solr在 Solr 中存储和搜索数据对
【发布时间】:2013-04-02 05:39:39
【问题描述】:

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

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

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

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

【问题讨论】:

  • 如果两个用户有Joe={1, 2, 2}Bob = {2, 2, 1}这样的能力,你会如何比较他们?

标签: solr lucene


【解决方案1】:

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

不是有两个字段存储专长和能力,而是只有一个字段包含 "ability_of_a_specialty"

例如,

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

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

【讨论】:

    猜你喜欢
    • 2013-02-15
    • 2011-12-29
    • 1970-01-01
    • 1970-01-01
    • 2011-12-02
    • 2016-06-28
    • 2012-07-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多