我正在尝试查询数据(使用solr)并获取“天”计数。

我对以下代码有疑问:

    solrQuery.addDateRangeFacet("startTimeISO", date1.toDate(), date2.toDate(), "%2B1DAY");

    solrQuery.setQuery(queryString);

    QueryResponse response = null;
    try {
        response = solrClient.getSolrServer(getCollectionName(Constants.WebPeerAnomaliesModelTuple()._1())).query(solrQuery);
    } catch (Exception exp) {
        LOGGER.error("Failed to get facet results: ", exp);
    }

我在这里遇到的错误是:

“无法将字段%2B1DAY添加为值Pst 2014年11月14日星期五06:37:30 startTimeISO的差值”

有人可以帮我这是什么问题吗?

我不确定“%2B1DAY”为什么会失败。当我从浏览器中执行相同的操作时,我得到的是正确的结果。如果我从url查询以下内容,则可以使用:
/select?facet=true&facet.date=startTimeISO&facet.date.start=NOW/DAY-30DAYS&facet.date.end=NOW/DAY%2B1DAY&facet.date.gap=%2B1DAY

抱歉,如果我要问一个小问题。我仍在尝试调试。任何指针都会有所帮助。谢谢。

更新:解决方案:

我能够调试它,并找出为什么我得到此错误。

在我的Java代码中,应该添加“+ 1Day”而不是“%2B1DAY”。
通过浏览器查询有效,因为+为%2B(URL编码)
很抱歉这个愚蠢的问题。
希望它可以帮助某人。 :)

最佳答案

将我的解决方案添加为答案:正如一位评论者所述,人们很可能会错过我针对该问题提供的更新。

解决方案:

我能够调试它,并找出为什么我得到此错误。

在我的Java代码中,应该添加“+ 1Day”而不是“%2B1DAY”。通过浏览器查询有效,因为+是%2B(URL编码)对不起这个问题。希望它可以帮助某人。 :)

关于solr4 - SOLR : solrQuery. addDateRangeFacet():无法将间隙%2B1DAY添加到字段的值中:,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27578311/

10-12 19:56