Graph 使用多值字段的SOLR图遍历
正在尝试使用多值字段对我的集合进行图形遍历。由这样一个简单的搜索表达式生成 搜索(mycollection,q=“pscnav:Magazine”,qt=“/select”,fl=“pscnav,connamenav”,sort=“connamenav asc”) 可能如下所示Graph 使用多值字段的SOLR图遍历,graph,solr,streaming,Graph,Solr,Streaming,正在尝试使用多值字段对我的集合进行图形遍历。由这样一个简单的搜索表达式生成 搜索(mycollection,q=“pscnav:Magazine”,qt=“/select”,fl=“pscnav,connamenav”,sort=“connamenav asc”) 可能如下所示 { "result-set": { "docs": [ { "connamenav": [ &quo
{
"result-set": {
"docs": [
{
"connamenav": [
"Marco Lambert",
"Alan Harding"
],
"pscnav": [
"Magazines"
]
},
{
"connamenav": [
"Alfred Mitchell",
"Raquel Schultz"
],
"pscnav": [
"Magazines"
]
},
{
"connamenav": [
"Audra Young"
],
"pscnav": [
"Magazines",
"Third Party Debt Collection",
"Credit Information Furnishers"
]
},
{
"EOF": true,
"RESPONSE_TIME": 17
}
]
}
}
我想对这个结果做一个图形遍历。但由于此结果中的字段具有多个值,因此节点表达式不起作用。因此,我将此搜索结果包装在cartesianProduct表达式中,如下所示
{
"result-set": {
"docs": [
{
"connamenav": [
"Marco Lambert",
"Alan Harding"
],
"pscnav": [
"Magazines"
]
},
{
"connamenav": [
"Alfred Mitchell",
"Raquel Schultz"
],
"pscnav": [
"Magazines"
]
},
{
"connamenav": [
"Audra Young"
],
"pscnav": [
"Magazines",
"Third Party Debt Collection",
"Credit Information Furnishers"
]
},
{
"EOF": true,
"RESPONSE_TIME": 17
}
]
}
}
cartesianProduct(搜索(mycollection,q=“pscnav:Magazine”,qt=“/select”,fl=“pscnav,connamenav”,sort=“connamenav asc”),pscnav,connamenav)
这将使用单个值展平所有元组。结果如下:
{
"result-set": {
"docs": [
{
"connamenav": "Marco Lambert",
"pscnav": "Magazines"
},
{
"connamenav": "Alan Harding",
"pscnav": "Magazines"
},
{
"connamenav": "Alfred Mitchell",
"pscnav": "Magazines"
},
{
"connamenav": "Raquel Schultz",
"pscnav": "Magazines"
},
{
"connamenav": "Audra Young",
"pscnav": "Magazines"
},
{
"connamenav": "Audra Young",
"pscnav": "Third Party Debt Collection"
},
{
"connamenav": "Audra Young",
"pscnav": "Credit Information Furnishers"
},
{
"EOF": true,
"RESPONSE_TIME": 16
}
]
}
}
接下来,我想使用节点表达式遍历这个结果集。使用下面的表达式
节点(cartesianProduct(搜索(mycollection,q=“pscnav:Magazine”,qt=“/select”,fl=“pscnav,connamenav”,sort=“connamenav asc”),pscnav,connamenav),walk=“杂志->pscnav”,gather=“connamenav”)
它抛出异常-java.util.concurrent.ExecutionException:java.lang.RuntimeException:java.io.IOException:java.io.IOException:cartesianProduct找不到切片(搜索(mycollection,q=“pscnav:Magazine”,qt=“/select”,fl=“pscnav,connamenav”,sort=“connamenav asc”),pscnav,connamenav)
或者,如果我使用这个版本的节点表达式-
节点(mycollection,cartesianProduct)(搜索(mycollection,q=“pscnav:杂志”,qt=“/select”,fl=“pscnav,connamenav”,sort=“connamenav asc”),pscnav,connamenav),walk=“pscnav->pscnav”,gather=“connamenav”)
它引发异常“null:java.lang.IllegalStateException:unexpected docvalues type SORTED\u为字段“connamenav”(预期为已排序)。请使用正确的docvalues类型重新索引”
有什么建议吗,我做错了什么?对我来说,将cartesianProduct的结果重新索引到单独的solr集合并不是一个真正的选择。正在寻找查询时间解决方案
任何指示都将不胜感激
谢谢我建议将此信息发布到
solr user
以吸引更多眼球,特别是对于流式表达的更低级体验。确保把你得到的答案也添加到这里,也这样做了。希望得到一些答案。我建议将此发布到solr user
,以吸引更多眼球,特别是对于流式表达的更低级体验。确保把你得到的答案也添加到这里,也这样做了。希望得到一些答案。