graph - 使用多值字段的 SOLR 图遍历
问题描述
尝试使用多值字段对我的集合进行图形遍历。像这样的简单搜索表达式的结果
搜索(mycollection,q="pscnav:Magazines", qt="/select",fl="pscnav,connamenav",sort="connamenav asc")
可能如下。
{
"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:Magazines", 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(search(mycollection,q="pscnav:Magazines", qt="/select",fl="pscnav,connamenav",sort="connamenav asc"),pscnav,connamenav), walk="Magazines-> pscnav",gather="connamenav")
它抛出异常 - java.util.concurrent.ExecutionException: java.lang.RuntimeException: java.io.IOException: java.io.IOException: Slices not found for cartesianProduct(search(mycollection,q="pscnav:Magazines",qt= "/select",fl="pscnav,connamenav",sort="connamenav asc"),pscnav,connamenav)
或者,如果我使用此版本的节点表达式 -
节点(mycollection,cartesianProduct(搜索(mycollection,q="pscnav:Magazines", qt="/select",fl="pscnav,connamenav",sort="connamenav asc"),pscnav,connamenav), walk="pscnav ->pscnav",gather="connamenav")
它抛出异常“null:java.lang.IllegalStateException:字段'connamenav'的意外文档值类型SORTED_SET(预期= SORTED)。使用正确的文档值类型重新索引”
任何建议,我在这里做错了什么?将 CartesianProduct 的结果重新索引到单独的 solr 集合对我来说并不是一个真正的选择。寻找查询时间解决方案。
任何指针都会非常感激
谢谢
解决方案
推荐阅读
- android - Paging Library 3 and prefetchDistance usage
- sql-server - SSMS 导出向导“启用身份插入”不起作用
- python - Python VLC 仅适用于 python shell
- postgresql - PostgreSQL 要求 GROUP BY 虽然我似乎不需要它
- reactjs - 在另一个组件中定义 React Router 路由
- python-3.x - 如何在 Python 中从 DataFrame 日期修改特定字符
- java - 给定位置交换链表中的两个元素
- javascript - app.default.firebase 不是函数错误
- python - 启动 PyCharm CE 时无法打开 Python
- scala - Spark SQL-如何将 RelationalGroupedDataSet 转换为 DataFrame