我是索尔的新手,我想知道下一个例子是否可行。
假设我有一个包含2个字段的核心,一个字符串字段'name'和一个multiValued字段'ids'。 用doc 1:
和doc 2:
现在我想要一个查询,它给我一个带有以下元素的结果数组:
因此,查询返回multiValue字段中每个值的每个文档,首先按“ids”中的值排序,然后按名称排序。
你可以说,只需选择所有文档并在查询后处理其他内容,但我有很多数据,我只希望排序的前20个文档和multiValued字段中的每个值。
我希望这是可能的,有人可以帮助我! 提前谢谢。
答案 0 :(得分:0)
我对solr知之甚少但是我认为通过 SolrPhpClient 你可以这样做:
$arr1 = explode(":","Name: Tim");
$arr2 = explode(":","Ids: 1,2,3");
$arr2 = explode(",",$arr2[1]);
for($i=0;$i<$arr2.length;$i++){
array_push( $arr3 ,array( $arr2[i] ,arr1[1] ) );
}
做第二次
并通过array_merge和sort你可以获得所需的结果。
答案 1 :(得分:0)
如果您希望多次返回文档并对这两个字段进行排序,则可以为每个组合插入单独的记录。
这是很多重复的数据,但推测这是你实现它的唯一方法
您可以使用Grouping功能,但它不适用于多值字段。