Graph 使用多值字段的SOLR图遍历

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

正在尝试使用多值字段对我的集合进行图形遍历。由这样一个简单的搜索表达式生成

搜索(mycollection,q=“pscnav:Magazine”,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表达式中,如下所示

{
  "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
,以吸引更多眼球,特别是对于流式表达的更低级体验。确保把你得到的答案也添加到这里,也这样做了。希望得到一些答案。