Spring Solr地理空间搜索

时间:2016-08-15 06:24:52

标签: spring solr geospatial

我试图通过使用它们的位置在solr中找到圆圈中的一些对象。这是我想要http://localhost:8983/solr/col/select?q=%3A&wt=json&indent=true&pt=10.34,12.4&d=5&sfield=location&fq= {!geofilt}

的查询

但是我不能为此创建java代码。我试过这样的

SimpleQuery query = new SimpleQuery();

query.addCriteria(Criteria.where("location").near(new Point(10.34, 12.4), new Distance(5)));
SolrDocumentList docs = null;

try {
    QueryResponse rsp = server.query(query);
    docs = rsp.getResults();
} catch (SolrServerException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}

但是QueryResponse类不允许这样做。我能做些什么可以帮助我?

1 个答案:

答案 0 :(得分:0)

我在代码中发现问题,如果有人想知道新代码,我把它放在这里,

SimpleQuery query = new SimpleQuery();         query.addCriteria(Criteria.where(" location")。within(new Point(lat,lon),new Distance(distance)));

    DefaultQueryParser qp = new DefaultQueryParser();
    final SolrQuery solrQuery = qp.constructSolrQuery(query);

    SolrDocumentList docs = null;

我添加了DefaultQueryParser并解决了问题。