我想按sku排序solr结果,
以下是我对排序结果的查询
http://localhost:8983/solr/test_core/select?sort=skucode+asc&q=*skucode*&wt=xml
skucode标记在数字字段中存储的数据。
<str name="id">39902395</str>
<arr name="skucode"><long>5076501</long></arr>
我使用xml文件在solr中存储了数据。
它给出了can not sort on multivalued field: skucode
或存储没有多值的数据
请告诉我如何在没有多值的情况下存储数据或如何从后端进行更改。
答案 0 :(得分:0)
只有在您执行排序的字段是单值而不是多值时,您的查询才有效。您可以使用函数查询对多值字段执行排序。
http://localhost:8983/solr/test_core/select?sort=field(skucode,max)+ASC&q=*skucode*&wt=xml
有关函数查询的更多信息: - https://cwiki.apache.org/confluence/display/solr/Function+Queries
您使用的查询也可以使用的第二种方法是您可以更改skucode的数据类型并使其成为单值。在schema.xml中将skucode的单值更改数据类型从long更改为long。
<field name="skucode" type="long"/>
P.S: - 更改其数据类型后,您需要重新编制索引以反映您的更改