如何在Solr中对日期字段进行排序?

时间:2017-12-19 13:34:09

标签: apache solr

我在Solr中有一个名为date的字段,类型为:pdate,格式为:2017-12-19T06:45:00Z

然后当我意识到具有排序ASC的查询时,我从solr收到此错误:

  

意外的docvalues为字段'date'键入SORTED_NUMERIC(预期= NUM​​ERIC)

我试图改变类型和所有参数来解决它,但没有任何作用。

有人有任何想法吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以通过在config.xml文件中定义日期类型字段来实现。

<field name="publishedon" type="date" multiValued="false" indexed="true" stored="true" docValues="true"/>

然后您可以在此定义的字段上应用排序,如下所示:

public Page<Article> getArticles(final String querySolr, final Pageable page) {
    Query querySolrObj = new SimpleQuery(querySolr);
    Sort publishedOnSorting = new Sort(Direction.ASC, "publishedon");
    querySolrObj.addSort(publishedOnSorting);
    querySolrObj.setPageRequest(page);
    Page<ArticleSE> result = executeNativeQuery(querySolrObj);      
    return result;
}