2012-02-23 66 views
1

我查询Solr的是这样的:SOLR查询升压

http://XXX.xx.xx:xxx/solr/select?q=name:(pizza)&fq=locationid:6050 OR _query_:"{!bbox}"&sfield=location&pt=34.0211224, -118.39646&d=8 

我的名字列搜索记录和记录必须落在8公里Boundry OR locationid列值6050

现在我想要提升与位置列值6050相匹配的记录。

+0

你能清理这个问题吗?很难理解你在问什么。缩写和缺乏标点也没有帮助。为你的问题付出一些努力,人们将更有可能将努力付诸于他们的答案。 – 2012-02-23 19:58:36

+0

谢谢罗伯特..我编辑了这个问题,谢谢 – 2012-02-23 20:10:37

回答

3

如果在filter query parameter内使用locationid:6050过滤器,它不会影响得分。您应该首先将您的过滤器移动到q参数中。然后,您可以使用edismaxdismax查询解析器,并像下面这样使用过滤器的权重:locationid:6050^2。看看here

+0

嗨,感谢您的回复。如果我移到q参数中,它将在locationid列中搜索6050值。我不希望它搜索。它只有一个过滤器列 – 2012-02-23 21:18:44

+0

谢谢我有想法使用dismax使它工作 – 2012-02-23 21:24:53

+0

太好了,不客气! – javanna 2012-02-23 21:45:03