【问题标题】:solrj error executing querysolrj 执行查询时出错
【发布时间】:2016-08-29 12:16:14
【问题描述】:

我正在尝试执行查询

http://192.168.1.101:7070/solr/locationList_shard3_replica1/select?q=*:*&fq={!geofilt}&sfield=geometry&pt=19.7599,74.8091&d=50&sort=geodist()%20desc

它与 solr 仪表板完美配合,但是当我尝试从 solrj 错误时

我的代码是

query.addFilterQuery("{!geofilt}&sfield=geometry&pt="
                    + address.getGeometry() + "&d=1000000&sort=geodist() desc");

空间请求的错误缺少字段

【问题讨论】:

  • 在大括号内指定字段名称并尝试。 {!geofilt sfield=geometry}
  • 所有特殊字符(& 等)都将被编码,因此它们是fq 参数的一部分 - 它们不会直接插入到 URL 中。

标签: solr solrj solrcloud


【解决方案1】:

传递给addFilterQuery 的字符串是过滤器参数。为了清楚起见,您传递给方法addFilterQuery 的字符串将被完全编码。尝试以这种方式重构查询:

query.add("fq", "{!geofilt}");
query.add("sfield", "geometry");
query.add("pt", address.getGeometry());
query.add("sort", "geodist() desc");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-14
    • 2012-11-04
    • 2012-07-30
    • 1970-01-01
    • 1970-01-01
    • 2013-11-26
    • 2014-08-27
    • 2015-07-18
    相关资源
    最近更新 更多