如何找附近人约会联系电话或微信(2020怎么找附近的人约)
如何找附近人约会联系电话或微信(2020怎么找附近的人约),本文通过数据整理汇集了如何找附近人约会联系电话或微信(2020怎么找附近的人约)相关信息,下面一起看看。
怎么找附近的人 微信附近的人约三 实践常用的全文搜索引擎,比如Solr或ES都支持位置搜索,以Solr为例,solr支持多种距离字段定义,常用的配置如下:三 实践
常用的全文搜索引擎,比如Solr或ES都支持位置搜索,以Solr为例,solr支持多种距离字段定义,常用的配置如下:
新建些测试文档:
此处采用动态字段形式,定义city_s即为string类型,location_p为location类型。 查询下结果如下:
Solr支持两种查询分析器,其实差不多,分别为:geofit查询分析器和bbox查询分析器
3.1 Geofit查询分析器查询附近数据
geofit过滤器可以根据地理空间距离从给定点做一个圆形的过滤,查询5公里范围内的数据,命令如下:
fq={!geofilt sfield=location_p pt=30.67,104.05 d=1000}
sfield: 保存位置的字段名。 pt :初始位置 d: 附近距离,单位千米 结果展示:
Geofit采用两步求结果:
按照精度要求,创建一个正方形边框,正方形的边长为搜索的距离,通过这个正方形过滤文档。计算边框内的位置和中心的距离,然后进行排序,且要过滤掉以距离为圆的圆外数据。 但是如果数据量很大,那么精确的圆过滤没有必要,那就可以采用bbox查询器。3.2 bbox查询分析器查询附近数据
bbox过滤器与geofit非常相似,只要它使用要计算的圆的边界框,它采用与geofit相同的参数:
fq= {!bbox sfield=location_p pt=30.67,104.05 d=1000}
由于不做精确过滤,所以速度更快,结果我就不贴了。
3.3 距离排序
我们从刚才查询结果来看,离的近的排在前面,那么有没有办法计算这个距离的,solr中有相关函数的,且支持排序:
fl = id,city_s,distance:geodist(location_p,30.67,104.05) &sort=geodist(location_p,30.67,104.05)asc,score desc
查询就且排序
就说到这里吧。
更多如何找附近人约会联系电话或微信(2020怎么找附近的人约)相关信息请关注本站。