我有一个连接到Solr 3.3搜索的CakePHP 1.3应用程序。
除了lat / lon之外,有两个文档具有相同的属性。更接近lat / lon的doc被输入第二个(更高的id),但是geodist()的bost我希望它首先出现。实际行为是doc,更接近lat / lon出现在第二位。这是PHP Solr服务返回到我的应用程序的数组:
protected '_rawResponse' => string '{
"responseHeader":{
"status":0,
"QTime":0,
"params":{
"start":"0",
"q":"beethoven eroica",
"sfield":"lat_lon",
"pt":"45.3306,-122.5290",
"bf":"recip(geodist(),1,1000,1000)",
"json.nl":"map",
"wt":"json",
"rows":"10",
"version":"1.4"
}
},
"response":{
"numFound":7,
"start":0,
"docs":[{
"id":"2",
"title":"Symphony No 3, Eroica",
"composer":"Beethoven, Ludwig van",
"publisher":"Schott Musik International",
"location":"Seattle, WA",
"lat_lon":"47.6115,-122.3343"
},{
"id":"28",
"title":"Symphony No 3, Eroica",
"composer":"Beethoven, Ludwig'... (length=1418)
第二个doc(id = 28)的lat / lon与查询中的“pt”值匹配。
我做错了什么?
答案 0 :(得分:0)
我添加了defType=dismax
,现在结果按预期排序。