【问题标题】:How to sort date field in Solr?如何在 Solr 中对日期字段进行排序?
【发布时间】:2017-12-19 13:34:09
【问题描述】:

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

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

字段“日期”的意外文档值类型 SORTED_NUMERIC (expected=NUMERIC)

我尝试更改类型和所有参数来解决它,但没有任何效果。

有人知道吗?

谢谢!

【问题讨论】:

  • 更改类型/升级 Solr 后是否重新索引?

标签: apache solr


【解决方案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;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多