一、LBS基于solr实现范围查找和距离
solr/item/select/?q=name:少女&sfield=location&pt=36.853222,116.433365&fl=name,location,_dist_:geodist()&fq={!geofilt}&d=20000
字段 |
含义 |
q |
查询条件,如 q=poi_id:134567 |
fq |
过滤条件,如 fq=store_name:农业 |
fl |
返回字段,如fl=poi_id,store_name |
pt |
坐标点,如pt=54.729696,-98.525391 |
d |
搜索半径,如 d=10表示10km范围内 |
sfield |
指定坐标索引字段,如sfield=geo |
defType |
指定查询类型可以取 dismax和edismax,edismax支持boost函数相乘作用,dismax是通过累加方式计算最后的score. |
qf |
指定权重字段:qf=store_name^10+poi_location_p^5 |
score |
排序字段根据qf定义的字段defType定义的方式计算得到score排序输出 |
Group参数
Group和Facet的概念很像,都是用来分组。Facet返回所有相关的结果并允许用户基于facet的目录重新定义结果集。Facet可以对分组数量进行过滤,以及排序,和日期范围,时间范围分组,但是如果你想得到具体的数据,还得需要查询一次或多次。group可以得到分组的组数量,一次请求,可以拿到所有的数据。 注意:group在分布式搜索引擎下有些参数不支持
参数 |
类型 |
说明 |
< |