solr学习安装随笔
来源:互联网 发布:无锡软件开发公司 编辑:程序博客网 时间:2024/06/11 02:02
1.案例:实现solr电商的搜索功能
2.解决方案:
2.1方案一
使用数据库搜索,关系型数据库mysql、oracle实现搜索商品信息,标题中包含关键的商品。
select * from 商品表 where 商品标签 like ‘%搜索信息%’
海量数据中搜索速度非常慢,顺序扫描。
like是否能使用索引?
’%%’:索引不能使用这种形式
关键词%:可以使用索引
如果字段的长度大于255字符不能使用索引
2.2 方案二
使用全文检索的方式进行检索:在整篇文章中快速检索某些关键词提出的解决方案。例如百度搜索,电商搜索
好处:快,准确、
数据库中搜索Java关键词:会搜索到例如JavaScript
全文检索搜索java关键词:javascript不会检索出来
技术方案:
2.21.lucene:使用java开发的全文检索工具包。需要在它的基础上二次开发。需要自己解决集群、缓存、大数据的问题
2.2.2.solr:使用java开发的全文检索服务器。基于lucene的api开发。只需配置就可以运用的全文检索
3.什么是solr
solr是Apache下的顶级开源项目,采用java开发,是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。 –百度百科
4.solr的安装及配置
4.1 solr的运行环境
需要安装jdk:1.7.0以上版本
tomcat要求7以上
操作版本:linux/windows
4.2 solr 和tomcat集成
1.安装jdk,tomcat
2.
将dist目录下的solr-4.7.2.war文件放到tomcat下webapp目录下,改名为solr.war(为了方便访问,不是必须的)
3.解压solr.war(可以自己解压,tomcat自动解压)
4.删除solr.war
5.把solr-4.7.2\example\lib\ext下的所有jar添加到solr工程中apache-tomcat-8.5.12\webapps\solr\WEB-INF\lib下
6.创建一个solrhome(solr所有的配置文件)solr解压路径下的如下文件就是一个solrhome
将该文件复制到其他路径下改名为solrhome(为了便于理解)
7.配置solehome的文件地址:修改solr工程web.xml 文件
打开web.xml找到如下位置
将env-entry-value改为你的solrhome路径
索引库存放的位置
两个关键配置文件
8.启动tomcat
访问http://127.0.0.1:8080/solr/路径出现如下页面
搭建完成!
5.后台管理页面
5.1 Analyzer
查看当前索引库和分词效果
(1)域、字段列表,所有的域都是在schema.xml中定义,应该先定义后使用
如果想修改育德定义以及自定义与需要修改schema.xml
(2)查看域的分词效果
对于英文支持尚可,中文支持差
5.2 Document
索引库维护功能,索引库进行增删改功能
5.2.1 添加文档
(1)在solr中一条记录就是一个文档
(2)文档中可以使用json数据格式描述,key就是域,valuye 值
(3)在solr中每个文档必须有一个域,类似关系型数据库中主键,不可重复
(4)域必须先定义后使用。域都是在schema.xml中定义
5.2.2 更新文档
添加一个新的文档,如果id重复会把原来的数据覆盖掉
5.2.3 删除文档
5.2.3.1 根据id删除
5.2.3.1 根据查询删除
*:*
匹配所有文档
域名:关键字 例如:id:change.me
5.3 Query
查询功能
6.slorJ管理索引库
solr提供的一个客户端。就是一个jar包,把jar添加到工程中整合solr服务
第一步 创建java工程
第二步 导入需要的jar
第三步 创建java类进行测试
6.1 添加文档
(1)创建一个连接solr服务的客户端对象 SolrServer对象(2)创建一个文档对象(3)向文档对象中添加域(3)提交文档
private static void add() throws IOException, SolrServerException { SolrServer solrServer = new HttpSolrServer("http://127.0.0.1:8080/solr/"); SolrInputDocument solrInputFields = new SolrInputDocument(); solrInputFields.addField("id","新id"); solrInputFields.addField("title","新title"); solrServer.add(solrInputFields); solrServer.commit(); }
6.1 删除文档
private static void deletesolr() throws IOException, SolrServerException { SolrServer solrServer = new HttpSolrServer("http://127.0.0.1:8080/solr/"); //通过id删除// solrServer.deleteById("新id"); //通过查询删除 solrServer.deleteByQuery("title:新title"); solrServer.commit(); }
6.2 查询文档文档
private static void query() throws SolrServerException { SolrServer solrServer = new HttpSolrServer("http://127.0.0.1:8080/solr/"); QueryResponse response = null; SolrQuery solrParams = new SolrQuery(); solrParams.set("q", "title:新title"); solrParams.set("start", 0); solrParams.set("rows", 5); solrParams.set("sort", "id asc"); SolrDocumentList list = null; response = solrServer.query(solrParams); if(response!=null){ list = response.getResults(); for (SolrDocument entries : list) { System.out.println("id = "+entries.get("id")); System.out.println("title = "+entries.get("title")); } } }
- solr学习安装随笔
- solr学习之-solr安装
- solr学习第二课----solr安装部署
- solr 安装配置学习记录
- Solr使用随笔
- Solr学习笔记(一)Solr的安装
- Solr学习笔记-认识solr及安装配置
- Solr学习总结(二)Solr的安装与配置
- solr学习笔记 -- day07 Linux下安装solr
- solr学习第一课----安装前准备
- solr学习笔记1_solr安装配置
- solr学习第九课程----Zookeeper的安装
- solr学习第九课程----SolrCloud的安装
- Solr学习(一)-- 安装部署
- solr学习笔记-- day01 安装及配置
- solr 安装
- Solr安装
- solr安装
- 记录一下HTC vive播放2d视频或全景视频
- centos 7.2 安装mysql 修改 初始密码
- SVN 双机热备份(crontab定时)
- 常用 Git 命令清单
- list的extend()与append()的使用和区别 Python
- solr学习安装随笔
- adobe acrobat xi pro下载 + 破解 ——找到了靠谱的下载及破解地址
- SwipeRefreshLayout的下拉刷新和上拉加载
- Spring的注入,注解
- IOS开发环境更换后重新制作Provisioning Profile证书详解
- Linux下C语言开发-----动静态库的生成
- Python清空指定文件夹下所有文件的方法
- Eclipse Java注释模板的修改(打造自己的专属模板)
- Could't load BaiduMapSDK_v3_0_0 from loader