排序在Solr的多值字段(Sorting on multivalued field in Solr)

2019-10-23 02:45发布

我知道,多值字段排序不Solr的支持。 但有什么办法,我们可以在Solr的多值字段进行排序。 我有场custom_code两个文件和值如下,

文档1:11,78,45,22

文档2:56,74,62,10

当我在升序的顺序应该是排序,

文档2:56,74,62,10

文档1:11,78,45,22

这里文档2会首先,因为它具有最小的元件10(其是大于11 DOC 1)。

我们怎样才能在Solr中实现这一目标。 什么是最简单的方法是什么?

Answer 1:

创建copyfield为多值数据的内容复制到排序的串联单值没有逗号,并用它进行排序。

对于例如:

文件1:

multiValuedData:11,78,45,22

sortedConcatenatedSingleValue:11224578

文档2:

multiValuedData:56,74,62,10

sortedConcatenatedSingleValue:10566274

如果你不能从产生源的数据,那么你可以使用脚本变压器(时间创建此singlvalue领域https://wiki.apache.org/solr/DataImportHandler#ScriptTransformer )在指数使用时间创建此sortedConcatenatedSingleValue场javascript函数。



Answer 2:

如果这个问题是实现你可以只使用,如门票的说明。 但它并不像呢。

所以,你可以做的一件事就是指数的附加字段min_code ,非多值,并把最低值custom_code在那里。 你可以做的是,在客户端或Solr中的UpdateRequestProcessor。 然后,你只是排序上min_code



Answer 3:

你可以在箱子外面在5.3 - https://issues.apache.org/jira/browse/SOLR-2522

一个很好的描述是在这里- https://lucidworks.com/blog/2015/09/10/minmax-on-multivalued-field/



文章来源: Sorting on multivalued field in Solr