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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Solr中对日期字段进行排序?相关的知识,希望对你有一定的参考价值。

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

然后,当我实现ASC排序的查询时,我从solr收到此错误:

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

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

有人有什么想法吗?

谢谢!

答案

您可以通过在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;
}

以上是关于如何在Solr中对日期字段进行排序?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 RecyclerView 中对字符串元素进行排序?

如何在 SOLR 中按日期排序?

Java中对JSONArray中的对象的某个字段进行排序

Java中对JSONArray中的对象的某个字段进行排序

如何在django admin中对不存在的字段进行排序/排序[重复]

如何在角度 4 材料排序中对日期/时间列进行排序?