gpt4 book ai didi

join - 用于匹配嵌套/关系数据的 Solr 查询

转载 作者:行者123 更新时间:2023-12-04 08:44:07 27 4
gpt4 key购买 nike

我正在使用 apache solr 来匹配我的 webapp 的功能,我遇到了这个场景的问题:

我有三个程序员,技能领域是他们的技能,“权重”是指他/她的技能有多好:

{
name: "John",
skill: [
{name: "java", weight: 90},
{name: "oracle", weight: 90},
{name: "linux", weight: 70}
]
},
{
name: "Sam",
skill: [
{name: "C#", weight: 98},
{name: "java", weight: 75},
{name: "oracle", weight: 70},
{name: "tomcat", weight: 70},
]
},
{
name: "Bob",
skill: [
{name: "oracle", weight: 90},
{name: "java", weight: 85}
]
}

我有一份程序员的工作:
{
name: "webapp development",
skillRequired: [
{name: "java", weight: 85},
{name: "oracle", weight: 85},
]
}

我想使用这份工作的“skillRequired”来匹配那些程序员(找到最适合这份工作的人)。在这种情况下,应该是John和Bob,Sam因为java和oracle技术不够好而被踢出局。约翰应该比鲍勃得分更高,因为他更了解甲骨文。

问题是,solr 无法索引嵌套对象,我认为我能得到的最佳格式是:
name: "John",
skill-name: ["java", "oracle", "linux"],
skill-weight: [90, 90, 70]

等等。所以我不知道是否可以构建一个查询来让这个场景工作。

是否有更好的架构结构?或使用索引/查询时间提升?

我阅读了几乎所有的 solr wiki 和 google,但没有运气,欢迎任何提示和解决方法。

问题已解决,请在此处记录我的解决方案以获得帮助:

1、我的数据格式是json,所以我需要solr-4.8.0来支持json索引嵌套数据。如果数据是 xml 格式,solr-4.7.2 仍然有效。

2、solr-4.8.0需要java7-u55(官方推荐)

第三,嵌套的文档/对象应该使用“childDocuments”键提交给 solr。为了识别父/子文档的类型,我添加了“类型”字段。所以在上面的例子中,它看起来像这样:
   {
type: "programmer",
name: "John",
_childDocuments_: [
{type:"skill", name: "java", weight: 90},
{type:"skill", name: "oracle", weight: 90},
{type:"skill", name: "linux", weight: 70}
]
},
{
type: "programmer",
name: "Sam",
_childDocuments_: [
{type:"skill",name: "C#", weight: 98},
{type:"skill", name: "java", weight: 75},
{type:"skill", name: "oracle", weight: 70},
{type:"skill", name: "tomcat", weight: 70},
]
},
{
type: "programmer",
name: "Bob",
_childDocuments_: [
{type:"skill", name: "oracle", weight: 90},
{type:"skill", name: "java", weight: 85}
]
}

4、提交并提交到 solr 后,我可以将作业与块连接查询匹配(在过滤器查询中):
fq={!parent which='type:programmer'}type:skill AND name:java AND weight:[85 TO *]&
fq={!parent which='type:programmer'}type:skill AND name:oracle AND weight:[85 TO *]

最佳答案

你可以试试 BlockJoinQuery。 Refer here

关于join - 用于匹配嵌套/关系数据的 Solr 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23594391/

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