我使用的Solr的version 6.6.0
。我有标题的模式(text_general),描述(text_general),ID(整数)。当我升的称号为了我的代码返回一个错误搜索关键字列表的结果不能排序的多值字段:标题。
我曾尝试使用以下3种方法来设置排序
SolrQuery query = new SolrQuery();
1. query.setSort("title", SolrQuery.ORDER order);
2. query.addSort("title", SolrQuery.ORDER order);
3. SortClause ab = new SolrQuery.SortClause("title", SolrQuery.ORDER.asc);
query.addSort(ab);
但所有这些返回相同的错误
我找到了解决办法参照本答案
它说,使用最小/最大功能。query.setSort(字段( “PAGETITLE”,分钟),ORDER.asc); 这就是我想设置为查询,我不明白在这里使用的参数。
这是Maven的依赖,我使用
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-solrj</artifactId>
<version>6.5.1</version>
</dependency>
除非title
实际上是多值-可你的文章有多个头衔-你应该把它定义为multiValued="false"
在您的模式。然而,有一个第二个问题-默认类型的字段text_general
不适合排序,因为它会产生多个令牌,一个在标题中各个单词。这是用于搜索有用的,但排序时会给奇怪的和非直观的结果。
因此,而不是定义一个title_sort
字段,使用字段类型与KeywordTokenizer
和LowerCaseFilter
连接(如果你想不区分大小写排序),或者如果你想区分大小写的排序,使用已定义的string
字段类型的title_sort
字段。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句