1. 概述
介绍Solr之前,就不得不提业界大名鼎鼎的Lucene。Lucene是一个完全用Java编写
的高性能、跨平台的全文搜索引擎工具包,能满足几乎所有软件项目的搜索需求。Lucene是Apache基金会的顶级开源项目。使用Lucene的方式主要有二种:一是自己编写程序,调用类库(创建索引、修改、删除、查询等);二是使用第三方基于Lucene编写的程序,如Solr等。
Solr是基于Lucene的企业级搜索引擎,是对Lucene的封装和扩展,是一个war包,需要基于Tomcat等web容器运行。Solr使项目更容易集成和开发搜索功能。
在solr5以前solr的启动都有tomcat作为容器,但是从solr5以后solr内部集成jetty服务器,可以通过bin目录中脚本直接启动。就是从solr5以后跟solr4最大的区别是被发布成一个独立的应用。
在solr5之后solr其实特别容易安装,有安装包,之后在解压,直接启动bin下solr,solr就这样完成的启动了。
2. Solr与Lucence的比较
Solr与Lucene 并不是竞争对立关系,恰恰相反Solr 依存于Lucene,因为Solr底层的核心技术是使用Lucene 来实现的,Solr和Lucene的本质区别有以下三点:搜索服务器,企业级和管理。Lucene本质上是搜索库,不是独立的应用程序,而Solr是。Lucene专注于搜索底层的建设,而Solr专注于企业应用。Lucene不负责支撑搜索服务所必须的管理,而Solr负责。所以说,一句话概括 Solr: Solr是Lucene面向企业搜索应用的扩展。
3. Solr目录结构介绍
![d761259df14b85e9952e19e37600624d.png](https://img-blog.csdnimg.cn/img_convert/d761259df14b85e9952e19e37600624d.png)
![748e572b77d59ded556a794e23de6288.png](https://img-blog.csdnimg.cn/img_convert/748e572b77d59ded556a794e23de6288.png)
![6905af3a836cea1e9ff39d7a11b14685.png](https://img-blog.csdnimg.cn/img_convert/6905af3a836cea1e9ff39d7a11b14685.png)
4. 创建core
启动完solr后可以看到solr的Admin页面,如下图:
![3f6280196ff881dd8c111b2c78cae60d.png](https://img-blog.csdnimg.cn/img_convert/3f6280196ff881dd8c111b2c78cae60d.png)
(1) 点击Core Admin创建core
InstanceDir 和 dataDir文件夹是在solr-7.7.2serversolr下创建的。
![6dc3a70259227188bfb421d0509d641c.png](https://img-blog.csdnimg.cn/img_convert/6dc3a70259227188bfb421d0509d641c.png)
![0c154742e8f179afddf7347134838dc9.png](https://img-blog.csdnimg.cn/img_convert/0c154742e8f179afddf7347134838dc9.png)
(2) 拷贝solrconfigsetssample_techproducts_configs中conf文件夹至
ywbzCore中;
![e92c48e6b2f14cb4d601d1e0c68bab3e.png](https://img-blog.csdnimg.cn/img_convert/e92c48e6b2f14cb4d601d1e0c68bab3e.png)
(3) 之后点击创建即可,成功后展示下图:
![edb5a2870b9371246468d7046cf01ee0.png](https://img-blog.csdnimg.cn/img_convert/edb5a2870b9371246468d7046cf01ee0.png)
5. 配置IK分词
· 下载IK分词的jar包。
![ce23367fbdcc5acfb9a7579cce15d3b3.png](https://img-blog.csdnimg.cn/img_convert/ce23367fbdcc5acfb9a7579cce15d3b3.png)
· 把ik-analyzer-solr5-5.x.jar和solr-analyzer-ik-5.1.0.jar两个jar包复制到solr-webappwebappWEB-INFlib中;
![e23d33743c7cab57a5fb88cac2ce5c2c.png](https://img-blog.csdnimg.cn/img_convert/e23d33743c7cab57a5fb88cac2ce5c2c.png)
· 在solr-7.4.0serversolr-webappwebappWEB-INFclasses目录下新建一个classes目录,把IK分词下的配置文件复制进去
![deff3effb90f8c0bd976a7dcd3c79ee4.png](https://img-blog.csdnimg.cn/img_convert/deff3effb90f8c0bd976a7dcd3c79ee4.png)
· 进入ywbzCore文件夹,修改conf文件下的managed-schema.xml配置,在配置文件下方添加IK分词器的配置;
![cd932c6009653d8122cdfcd1aa8c86bb.png](https://img-blog.csdnimg.cn/img_convert/cd932c6009653d8122cdfcd1aa8c86bb.png)
· 重启solr,重新打开solrAdmin页面。发现IK分词生效可用
![918d88992057a3427cc880553e25c225.png](https://img-blog.csdnimg.cn/img_convert/918d88992057a3427cc880553e25c225.png)
6. managed-schema.xml配置文件解析
它是solr模式关联的文件。打开这个配置文件,你会发现有详细的注释。
![c7d87526a71c0fcda49dda354d576c15.png](https://img-blog.csdnimg.cn/img_convert/c7d87526a71c0fcda49dda354d576c15.png)
![539d0dbe7e7a2e5b1dc7a63062b31cf8.png](https://img-blog.csdnimg.cn/img_convert/539d0dbe7e7a2e5b1dc7a63062b31cf8.png)
Field和dynamicField的解析:
![a1297e6626fc71684bcabb03ad9868b9.png](https://img-blog.csdnimg.cn/img_convert/a1297e6626fc71684bcabb03ad9868b9.png)
![3c5a7a2319a68ad1562b9ed8aa91c1e6.png](https://img-blog.csdnimg.cn/img_convert/3c5a7a2319a68ad1562b9ed8aa91c1e6.png)