gpt4 book ai didi

solr - Solr文档带有子元素?

转载 作者:行者123 更新时间:2023-12-03 12:06:43 25 4
gpt4 key购买 nike

是否可以以某种方式创建包含子元素的Solr文档?

例如,我如何表示这样的东西:

<person first="Bob" last="Smith">
<children>
<child first="Little" last="Smith" />
<child first="Junior" last="Smith" />
</children>
</person>

解决此问题的常用方法是什么?

最佳答案

您可以根据搜索/构面的需要,以不同的方式对此进行建模。通常,您将使用多值或动态字段。在下面的示例中,我将省略字段类型,索引和存储的标志:

<field name="first"/>
<field name="last"/>
<field name="child_first" multiValued="true"/>
<field name="child_last" multiValued="true"/>

由您来关联子代的名字和姓氏。或者,您可以将两者都放在一个字段中:
<field name="first"/>
<field name="last"/>
<field name="child_first_and_last" multiValued="true"/>

另一个:
<field name="first"/>
<field name="last"/>
<dynamicField name="child_first_*"/>
<dynamicField name="child_last_*"/>

在这里,您将存储字段“child_first_1”,“child_last_1”,“child_first_2”,“child_last_2”等。再次取决于您要关联的值,但至少要有一个索引。使用一些代码,您可以使其透明。

底线:正如 Solr wiki所说:“Solr提供一个表。在索引中存储一组数据库表通常需要对某些表进行规范化。为避免进行规范化的尝试通常会失败。”您可以根据自己的搜索需求对数据进行非规范化。

更新:从4.5左右的版本开始,Solr直接支持嵌套文档: https://cwiki.apache.org/confluence/display/solr/Other+Parsers#OtherParsers-BlockJoinQueryParsers

关于solr - Solr文档带有子元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5584857/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com