我已将框架查询提交给solr,格式如下。
id:95154 OR id:68209 OR id:89482 OR id:94233 OR id:112481 OR id:93843
我希望从开始按顺序获取记录。说我需要首先获取id为95154的文档,然后是id 68209,依此类推。但它现在没有发生它的最后一个id 93843,有时候是random.i我在grails 2.1中使用solr而我的solr版本是1.4.0。这是我从solr获取文件的示例方式
def server = solrService.getServer('provider')
SolrQuery sponsorSolrQuery = new SolrQuery(solarQuery)
def queryResponse = server.query(sponsorSolrQuery);
documentsList = queryResponse.getResults()
答案 0 :(得分:0)
这意味着,您必须自己对结果进行排序:
documentsList = queryResponse.getResults()
def sordedByIdOrder = solarQueryAsList.collect{ id -> documentList.find{ it.id == id } }
答案 1 :(得分:0)
正如@injecteer所提到的,Lucene没有内置任何内容来考虑布尔查询中的子句序列,但是:
你可以对每个术语应用提升,只要该字段是一个基本字段(意思是,而不是TextField
),提升将适用于干净的分数。< / p>
id:95154^6 OR id:68209^5 OR id:89482^4 OR id:94233^3 OR id:112481^2 OR id:93843