Solr:如何在字段上进行多重排序,该字段是逗号分隔的键:值对

时间:2013-01-09 10:34:47

标签: solr

假设我们需要在某个整数字段(例如优先级)上按降序显示solr结果,我们可以轻松应用“按优先级排序”。 但是,如果此优先级字段是各种此类逗号分隔的int优先级的集合,例如search_priority,tag_priority,xyz_priority等。 假设solr中每个id的优先级字段包含。 “search_priority:100,tag_priority:200,xyz_priority:50” 那么我将如何按照tag_priority的降序获取所有ID。

请注意,一个简单的解决方案是我们可以将search_priority,tag_priority和xyz优先级中的每一个作为单独的solr int字段,然后我们采用tag_priority desc。 但我不希望这样,因为优先级的数量可能会增加,我们最终会手动添加这么多的solr字段。

是否有任何solr命令(如multisort)有助于对逗号分隔的文本字段进行排序?或者在solr中的任何其他形式的概念,这将是高度评价的

由于

1 个答案:

答案 0 :(得分:0)

我建议使用动态字段。

e.g。 <dynamicField name="*_priority" type="integer" indexed="true" stored="true"/>

  • 通过这种方式,您可以处理任意数量的优先级字段。
  • 这些字段将动态创建,无需定义。
  • 您始终可以使用动态字段进行排序。