SOLR:solrQuery.addDateRangeFacet():无法将空间%2B1DAY添加到字段的值:

Rog*_*ger 5 solr4

我正在尝试查询数据(使用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);
    }
Run Code Online (Sandbox Code Playgroud)

我在这里得到的错误是:

"不能将差距%2B1DAY添加到价值2014年11月14日06:37:30太平洋标准时间2014年字段: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(网址编码)抱歉这个愚蠢的问题.希望它可以帮助某人.:)

Rog*_*ger 4

添加我的解决方案作为答案:正如一位评论者提到的,人们有可能错过我就该问题提供的更新。

解决方案:

我能够对此进行调试并找出为什么会出现此错误。

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