我正在试图弄清楚如何存储和搜索数据对。我有一个类似于下面的文档,我的目标是执行一个搜索,返回具有给定专业的所有文档,然后通过匹配的专业能力对结果进行排序:
<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>
我熟悉工作索引,搜索和面对简单的文档,但我很难找到一个起点_(
我应该只使用两个集合并加入吗?
答案 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应该很简单。