2015-12-22 161 views
0

向SOLR查詢添加排序條件。首先按照department_sortable和productname_sortable進行排序。按照department_sortable排序,但不按productname_sortable排序。SOLR排序不起作用

private List<SortField> getSortParameters() { 
List<SortField> sortFields = new ArrayList<SortField>(); 
sortFields.add(generateSortField("department_sortable", SortDirection.ASC)); 
sortFields.add(generateSortField("productname_sortable", SortDirection.ASC)); 
return sortFields; 
} 


<field name="productname_sortable" type="text" indexed="true" stored="false" /> 
<field name="department_sortable" type="string" indexed="true" stored="false" multiValued="false"/> 


<copyField source="productname" dest="productname_sortable"/> 
<copyField source="department" dest="department_sortable"/> 

回答

0

我認爲,只有一個排序字段設置爲solrQuery。您可以通過使用SolrQuery#addSortFieldMethod

solrQuery.addSortField("department_sortable", org.apache.solr.client.solrj.SolrQuery.ORDER.asc); 
solrQuery.addSortField("productname_sortable",org.apache.solr.client.solrj.SolrQuery.ORDER.asc); 

solrQuery.addOrUpdateSort("department_sortable", org.apache.solr.client.solrj.SolrQuery.ORDER.asc); 

相關帖子添加多個排序字段Sorting solr search results using multiple fields (solrj)

0

嘗試

`solrQuery.setSort(new SortClause("department_sortable", "asc")); 
solrQuery.setSort(new SortClause("productname_sortable", "asc"));` 

`solrQuery.setSort(new SortClause("department_sortable", "asc")); 
solrQuery.addSortField(new SortClause("productname_sortable", "asc"));` 

solrQuery.setSort(new SortClause("department_sortable", "asc")); solrQuery.addSortField("productname_sortable", "asc");