gpt4 book ai didi

search - Solr 4.0存储和搜索Profile的Normalize数据

转载 作者:行者123 更新时间:2023-12-04 21:19:36 24 4
gpt4 key购买 nike

我正在评估 Solr 4.0 和 Elastic Search 0.20.5 以进行链接类型搜索,并想知道如何存储用户配置文件的规范化数据,这可以使用嵌套文档在 Elasticsearch 中轻松实现。

例如
人 Json

{
first_name: abc,
last_name: xyz,
school: [{
name: some school,
degree: x-Degree,
startDate:12-02-2009
},
{
name: some school2,
degree: x-Degree-2,
startDate:12-02-2012
}
]

}

我想搜索用户学校名称、学位和当前学习类似​​于linkedin搜索,

在 Solr 中索引和搜索它的最佳方法是什么?

最佳答案

不幸的是,Solr 不能像 elasticsearch 那样定义嵌套文档。

在 Solr 的情况下,答案是使用 multiValued模拟扁平化文档中所需信息的字段。就我个人而言,我觉得这是非常有限的,特别是因为分组的细节(对象)可能是分开的,但这是 Solr 的方式。您可以使用动态字段来解决此问题(例如, school_name_1school_degree_1school_name_2school_degree_2 链接),正如 arun 引用的链接所建议的那样,但与 Elasticsearch 的灵活性相比,这是一个更大的麻烦。

如果您的文档是 XML 格式,那么您可以使用 XPathEntityProcessor 以自动展平它。也许更不幸的是,我不知道有任何执行类似操作的 JSON 处理器。

您将需要一个类似于以下内容的架构:

<field name="first_name" indexed="true" />
<field name="last_name" indexed="true" />
<field name="school_name" multiValued="true" indexed="true" />
<field name="school_degree" multiValued="true" indexed="true" />
<field name="school_start_date" multiValued="true" indexed="true" />

不要忘记结束日期。您可能还想考虑学生可以拥有多个学位,尽管这可以通过简单地将学校加倍或在同一开始年份将学位设置为数组来解决。

关于search - Solr 4.0存储和搜索Profile的Normalize数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15157650/

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