我一直在搜索这个,但我所做的一切似乎都不起作用,我试过了,
cat: wolf; category desc
cat: wolf; sort category desc
$query->setQuery("cat: wolf")->sort("category desc");
我无法对结果进行排序,我不知道该怎么做。
答案 0 :(得分:4)
排序在多值和标记化字段上不起作用。
可以对文档的“得分”进行排序,也可以对任何multiValued =“false”indexed =“true”字段进行排序,前提是该字段是非标记化的(即:没有分析器)或使用分析器只产生一个Term(即:使用KeywordTokenizer)
使用字符串作为字段类型(或应用了小写过滤器和ascii过滤器的KeywordTokenizer)并将类别字段复制到新字段中。
<field name="category_sort" type="string" indexed="true" stored="false"/>
<copyField source="category" dest="category_sort" />
答案 1 :(得分:1)
嗨,我在solr V 8.6.1中也遇到相同的问题
<fieldType name="lowercase2" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.KeywordTokenizerFactory"/>
</analyzer>
</fieldType>
<field name="top_cat_en_US" type="lowercase2" indexed="true" stored="true"/>