使lucene / solr的关系数据非规范化

时间:2010-06-27 21:21:25

标签: solr lucene

我有一个关于使用apache solr / lucene的架构问题。

我正在构建一个搜索CV数据库的solr索引。基本上每个cv都会有一些字段,如:

工资率,地址,标题

这些领域是直截了当的。我需要建议的领域是技能和工作经历。 对于技能,有人可能会添加如下条目:C# - 5年,Java - 9年

所以基本上有N个技能,每个技能都有一个字符串名称和一个int no of years。 我以为我可以使用动态字段* _skill,并可能像这样添加它们:

1_skill:C#,2_skill:Java

但我怎样才能指出多年的经验?然后我会添加一个动态字段,如:

1_skill_years:5,2_skill_years:9

之前有没有人做过类似的事情? 任何帮助非常感谢?

问候

2 个答案:

答案 0 :(得分:1)

多值字段保持排序,因此您可以拥有多值的技能领域和多年的经验。当您阅读它们时,只需按顺序关联它们即可。

如果您有空值或空值,请注意。您将不得不使用特殊标记对其进行编码,因为空字符串或空值不会被编入索引,这将改变排序。

<强>更新
不幸的是,在Solr中不可能按多值字段进行排序。请参阅此链接以获取解释: http://lucene.472066.n3.nabble.com/performance-sorting-multivalued-field-td905943.html

答案 1 :(得分:0)

您可以使用多值字段代替动态字段。您知道同一个字段可以存在多个值。因此像

<Skill> Java
<Skill> Solr