solr 实现对经纬度的查询
1、solr版本
solr7+
2、solr 经纬度查询的方式
- 使用LatLonType(用于平面坐标,而不是大地坐标)
- SpatialRecursivePrefixTreeFieldType(缩写为RPT)
- BBoxField(用于边界索引查询)
2.1 使用 LatLonPointSpatialField
创建一个索引库,名叫newCore
在 conf 文件夹中找到 managed-schema 文件, 新增 以下域字段
<field name="loc" type="location" indexed="true" stored="true" required="true" multiValued="false" />
<field name="id" type="string" indexed="true" stored="true" required="false" multiValued="false" />
测试代码 新增坐标 到solr服务器中
@Autowiredprivate SolrClient solrClient;@Testpublic void addDoc11() throws SolrServerException, IOException {Random r = new Random();// 随机数Collection<SolrInputDocument> docList = new ArrayList<SolrInputDocument>();for (int i = 0; i < 10000; i++) {SolrInputDocument document = new SolrInputDocument();String id = i + "_solr";// 纬度范围是-90~90,经度范围-180~180String loc = (r.nextInt(180) - 90) + "," + (r.nextInt(360) - 180);document.addField("id", id);document.addField("loc", loc);docList.add(document);}solrClient.add(docList);solrClient.commit();}
生成以下数据
使用浏览器进行访问
#距离经纬度 45,94 1000km 所有的经纬度 降序排列
http://localhost:8983/solr/newcore/select?q=*:*&fq={!geofilt}&sfield=loc&pt=45,94&d=1000&start=0&rows=10&sort=geodist()%20asc
注意的是,此数据个是 (经度,纬度) 例如 (33,72)
参考资料 1:https://www.cnblogs.com/tony-zt/p/9260017.html solr7 的安装与使用
参考资料2 :https://blog.csdn.net/dmw412724/article/details/86520569 使用以上方式 进行sorl 的经纬查询
2、使用SpatialRecursivePrefixTreeFieldType
在 conf 文件夹中找到 managed-schema 文件, 新增 以下域字段
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" /><field name="station_address" type="text_general" indexed="true" stored="true"/><field name="station_position" type="location_rpt" indexed="true" stored="true"/>
location_rpt 的数据类型是
<fieldType name="location_rpt" class="solr.SpatialRecursivePrefixTreeFieldType"geo="true" distErrPct="0.025" maxDistErr="0.000009" distanceUnits="kilometers" />
测试代码
@Autowiredprivate SolrClient solrClient;@Testpublic void addDocRpt() throws SolrServerException, IOException {SolrInputDocument doc = new SolrInputDocument(); doc.addField("id","1"); doc.addField("station_address", "北京");String posString = "112.0541"+" "+"30.96029";doc.addField("station_position", posString);solrClient.add(doc);solrClient.commit();}
此数据入索引库的格式 是 (122.0122‘需要一个空格’30.9994) (112.0033 34.0008)
使用浏览器进行访问
# 查询与 112.0423 30.97878 经纬度距离 3km 范围的所有点
http://localhost:8983/solr/newcore/select?q=*:*&fq={!geofilt}&sfield=station_position&pt=112.0423%2030.97878&d=3&start=0&rows=10&sort=geodist()%20asc
查询结果
参考资料1:http://www.itkeyword.com/doc/2543881900536538500/apache%20latLon-solr 设置排序
参考资料2:https://blog.csdn.net/larger5/article/details/79768438 solr的操作
参考资料3:http://www.yanglajiao.com/article/u010346953/69934323 solr的操作
参考资料4:https://blog.csdn.net/u014508939/article/details/85165807 使用 SpatialRecursivePrefixTreeFieldType
参考资料5:http://www.hhlink.com/%E7%BB%8F%E7%BA%AC%E5%BA%A6/ 经纬度计算
pom文件
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-solr</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>
相关文章:

win7关于IIS发布网站时候数据库的问题,xp也一样
Win7装iis极其简单. 添加ASP.NET网站时应该选择添加"添加应用程序" 如果要连接sql server会报错,说是 "无法打开登录所请求的数据库 "MarketDept"。登录失败。用户 IIS APPPOOL\DefaultAppPool 登录失败。" 而系统中根本不会存在这个用户的. 解决…

Linq 等式运算符:SequenceEqual
检查元素的数量,每个元素的值及两个集合中元素的顺序是否相等,3个方面都相等则为true,否则为false IList<string> strList1 new List<string>(){"One", "Two", "Three", "Four", "Three"};IList<…

Swing 实现聊天系统 私发与群发
该系统使用的了socket、swing相关知识,实现了一个简单的群聊和私聊的系统。 1、程序界面功能展示 服务端swing界面展示 客户端服务展示 用户上线与发送消息客户端与服务端 私发消息 相关代码: package frame;import java.awt.BorderLayout; import ja…

Http和Socket连接区别(ZT)
1、TCP连接 要想明白Socket连接,先要明白TCP连接。手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。 建立起一…

函数传参涉及到副本的创建与拷贝问题分析
遇到一个问题,是这样的: b [1, 2, 3]def aaa(b):b.append(4)def bbb(b):b 5aaa(b) print(b) # [1, 2, 3, 4]bbb(b) print(b) # [1, 2, 3, 4] 为什么呢,为什么通过函数传参,去修改参数,结果不一致呢? 原因是因为函数传参涉及到了参数副本的创建与拷贝,具体详解: 圆圈2为传参…

网页鼠标滚动实现图片缩放
<SCRIPT LANGUAGE"JavaScript"><!--//图片按比例缩放,可输入参数设定初始大小function resizeimg(ImgD,iwidth,iheight) {var p_w_picpathnew Image();p_w_picpath.srcImgD.src;if(p_w_picpath.width>0 && p_w_picpath.height>0){if(p_w_picp…

Dubbo 2.7.1 踩坑记
Dubbo 2.7 版本增加新特性,新系统开始使用 Dubbo 2.7.1 尝鲜新功能。使用过程中不慎踩到这个版本的 Bug。 系统架构 Spring Boot 2.14-Release Dubbo 2.7.1 现象 Dubbo 服务者启动成功,正常提供服务,消费者调用偶现失败的情况。错误如下图: …

经典算法研究系列:二、Dijkstra 算法初探
经典算法研究系列:二、Dijkstra 算法初探 July 二零一一年一月 本文主要参考:算法导论 第二版、维基百科。 写的不好之处,还望见谅。本经典算法研究系列文章,永久勘误,永久更新、永久维护。 July、二零一一年二月…

[Python Study Notes] Python的安装
Windows: 1.下载安装包: 转到Python官网https://www.python.org/downloads/ ,下载最新版本的Python。 2.安装 安装到自定义的安装路径下。 3.配置环境变量 安装完成后--》【右键快捷方式】--》【复制python路径】,例如࿱…

swing 实现电影选座系统
该系统使用swing数据库 实现一个电影选座系统,相关系统的截图如下 使用三层架构实现电影购票系统,分用户和管理员,用户功能:展示电影,查找电影(模糊查询),查看电影详情,查找场次,购买影票&…

JS动态加载JS
1、直接document.write <script language"javascript"> document.write("<script srctest.js><\/script>"); </script> 2、动态改变已有script的src属性 <script src id"s1"></script> <script lang…

PAT乙级1037
1037 在霍格沃茨找零钱 (20 分)如果你是哈利波特迷,你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的:“十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易。”现在,给定哈利…

SAD和SATD的区别[摘]
Q:如果不用率失真最优化,为什么选择SATD+deltar(mv,mode)作为模式选择的依据?为什么运动估计中,整象素搜索用SAD,而亚象素用SATD?为什么帧内模式选择要用SATD?…

照片换色 使用Python 或者 java
记录使用第三方api 给照片换底色,智能抠图。 1、第三方接口地址 https://www.remove.bg/api 2、抠图效果 3、使用python 实现的代码 在网页换色是不需要进行注册的,如果自己开发 需要注册账号 ,得到调取api的口令 import requests impor…

WEB安全,SQL注入漏洞的加固代码汇总
该修复任务专用于处理以下安全性问题:[1] SQL 盲注[2] SQL 注入[3] XPath 注入[4] 发现数据库错误模式[5] 跨站点脚本编制[6] 使用 SQL 注入的认证旁路[7] HTTP 响应分割[8] 链接注入(便于跨站请求伪造)详细信息若干问题的补救方法在于对用户…

mui ios中form表单中点击输入框头部导航栏被推起及ios中form表单中同时存在日期选择及输入框时,日历选择页面错乱bug...
一、ios header导航栏被推起解决方法 1 设置弹出软键盘时自动改变webview的高度 plus.webview.currentWebview().setStyle({ softinputMode: "adjustResize" // 弹出软键盘时自动改变webview的高度 }); 2 增加样式 html, body { height: 100%; margin: 0px; …

qt试用1(Eclipse+cdt+Qt)
下载eclipse-cpp-helios-SR1-win32.zip下载Qt下载qt-eclipse-integration-win32-1.6.1.exe写一个启动eclipse的batch文件C:\program\eclipse-cpp-helios-SR1-win32\eclipse\cdt.batset path%path%;C:\Qt\2010.05\mingw\binset LIBRARY_PATHC:\Qt\2010.05\mingw\libset C_INCLUD…

Solr 中遇到的问题
1、问题1 :whose UTF8 encoding is longer than the max length 32766 Error from server at http://localhost:8983/solr/newcore: Exception writing document id 995 to the index; possible analysis error: Document contains at least one immense term in f…

【推荐】Flex+asp.net上传文件
前台Flex文件:UploadSample.mxml,其代码如下所示: 1 <?xml version"1.0" encoding"utf-8"?>2 <mx:Application xmlns:mx"http://www.adobe.com/2006/mxml"layout"absolute">3 <mx:…

Centos查找命令清单
查找目录:find /(查找范围) -name 查找关键字 -type d查找文件:find /(查找范围) -name 查找关键字 -print 如果需要更进一步的了解,可以参看Linux的命令详解。 这里摘抄如下: find …

docker 安装使用 solr
目录 1、安装solr 7.5 2、启动solr服务 2.1 创建一个solr库 3、配置IK分词器 4、docker 配置solr登录密码 1、安装solr 7.5 docker solr 官网:https://hub.docker.com/_/solr/ docker pull solr:7.5.0 2、启动solr服务 docker run --name my_solr -d -p 898…

2010中国城市GDP排名
1、上海市 14900.93亿元 8.2% 上海 2、北京市 11865.9亿元 10.1% 北京 3、广州市 9118.6亿元 11% 广东1 4、深圳市 8245亿元 10.5% 广东2 5、天津市 7500亿元 16.5% 天津 6、苏州市 7400亿元 11% 江苏1 7、重庆市 5856亿元 14.9% 重庆 8、杭州市 5098.66亿元 10% 浙…

基于wsimport生成代码的客户端
概述 wsimport是jdk自带的命令,可以根据wsdl文档生成客户端中间代码,基于生成的代码编写客户端,可以省很多麻烦。wsimport命令 wsimport的用法 wsimport [options] <WSDL_URI>比较常用的[options]有:1. -d <directory>…

C# Trim 的使用
C# 移除字符 /// <summary> /// 删除指定字符 /// </summary> /// <returns>返回经过修饰的字符串</returns> private string DelChar() { string mess " Test Program "; // 测试字符 if (mess ! string.Empty) …

CSS截取字符串,兼容浏览器
今天在经典论坛看到有同学问到CSS截取字符多余省略号代替的求助且要兼容FF... 这个的确是个比较头痛的问题,现在我在的公司都是程序截取显示省略符的。兼容是没问题,但在中文和数学或字母混排时,就会有点小小的视觉缺陷。在程序截取中&#x…

SQL Server Alwayson 主从数据库账号同步
我们建立了Alwayson后,辅助副本下的数据库是没有相应的账号的,怎么样进行账号的同步呢?怎么在不知道密码的情况下,进行账号的同步设置。 我们可以通过SP--sp_help_revlogin 来实现,此存储过程在主副本上创建了…

Python 使用 Flask框架记录
Python 使用 Flask框架记录 1、安装Flask Flask依赖两个外部库,Werkzeug和Jinja2,Werkzeug是一个WSGI(服务器网关接口)。Jinja2时负责渲染模板。在安装Flask之前需要安装这俩个外部库,最简单的安装方式是使用Vritualenv创建虚拟环境。 …

java8学习之Lambda表达式深入与流初步
Lambda表达式深入: 在上一次【http://www.cnblogs.com/webor2006/p/8135873.html】中介绍Lambda表达式的作用时,其中说到这点: 如标红处所说,既然Lambda表达式是一个对象,而且必须依附于一类特别的对象类型叫函数式接口…

Javascript与正则表达式个人总结与收录--高级篇
一、正则表达式中的量词 贪婪量词: 先看整个字符串是不是一个匹配。如果没有发现匹配,它去掉最后字符串中的最后一个字符,并再次尝试。如果还是没有发现匹配,那么再次去掉最后一个字符串,这个过程会一直重复直到发现一…

第二十五章 面向对象------封装、内置函数、反射、动态导入
1、封装 什么是封装? 1.对外部隐藏内部的属性,以及实现细节,给外部提供使用的接口 注意:封装有隐藏的意思,但不是单纯的隐藏 学习封装的目的:就是为了能够限制外界对内部数据的访问 python中属性的权限分为…