Ciao,我无法使用 Spring Solr Data 获得以下 solr 查询。
q=名称:rsa &sfield=坐标&pt=-8.506854,115.262478&sort=geodist()%20asc
如果我把它放在 solr 管理控制台中,查询就可以工作,但它不适用于 spring solr 数据。我没有在文档中找到有关 geodist 排序的示例,因此我创建了一个具有以下功能的 CustomRepository:
public Page<StructureDocument> findStructuresByNameAndCoordinates(String value, Point point, Pageable page) {
StringBuilder queryBuilder = new StringBuilder();
queryBuilder.append("name:*").append(value).append("*");
queryBuilder.append("&sfield=coordinates");
queryBuilder.append("&pt=").append(point.getX()).append(",").append(point.getY());
queryBuilder.append("&sort=geodist() asc");
Query query = new SimpleQuery(new SimpleStringCriteria(queryBuilder.toString())).setPageRequest(page);
但是由于语法错误它不起作用(似乎Solrj不喜欢这个chars()。这是错误:
; nested exception is org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteSolrException: Error from server at http://localhost:8983/solr: org.apache.solr.search.SyntaxError: Cannot parse 'name:*francesco*&sfield=coordinates&pt=-8.506854,115.262478&sort=geodist() asc': Encountered " ")" ") "" at line 1, column 71.
如何使用 spring solr 数据按 geodist 函数排序?
非常感谢。