本文共 1810 字,大约阅读时间需要 6 分钟。
目录
Solr是一个高性能,采用Java开发,基于Lucene的全文搜索服务器。本身也是一个数据库;
文档通过Http利用XML加到一个搜索集合中。
查询该集合也是通过 http收到一个XML/JSON响应来实现。它的主要特性包括:高效、灵活的缓存功能,垂直搜索功能,高亮显示搜索结果,通过索引复制来提高可用性,提 供一套强大Data Schema来定义字段,类型和设置文本分析,提供基于Web的管理界面等。
Lucene的开发语言是Java,也是Java家族中最为出名的一个开源搜索引擎,在Java世界中已经是标准的全文检索程序,它提供了完整的查询引擎和索引引擎,没有中文分词引擎,需要自己去实现,因此用Lucene去做一个搜素引擎需要自己去架构,另外它不支持实时搜索。但是solr和elasticsearch都是基于Lucene封装。
下载地址
网盘资料下载
链接:https://pan.baidu.com/s/1Gk3itgTIz_ExhcKDlPLbRw
提取码:rz00下载.zip解压后找到dist下的war包放在tomcat下的webapp目录下,更改.war名称方便访问
启动tomcat
添加扩展包 将ext文件夹下的jar包放到WEB-INF下的lib文件夹下
配置solr的数据存放位置
将example目录下的solr目录拷贝到一个靠近根目录下并且更改目录名solrhome
配置solrhome位置
打开WEB-INF 下web.xml
打开<env-entry> 注释改为刚刚复制后的地址
保存之后启动tomcat访问
选择数据库
查询界面
查询表达式 *:* 查询全部 第一个* 代表字段名称 第二个*代表要查询的条件值
solr中默认的配置不会对中文进行分词
默认配置每一个字一个分词
导入jar包复制拷贝
扩展词典拷贝文件如果没有,mydict.dic手动创建一个
新建一个classes目录粘贴进去
配置词典打开.xm配置文件打开注释将扩展的词典放进去
修改solrhome的schema.xml (这个文件很重要)
将这一段配置加进去
扩展分词mydict.dic自定义内容
重新启动
查看效果选择自定义的type类型,现在他走的就是自定义的词典
配置域:
域相当于数据库的表字段,用户存放数据,因此需要根据业务需要去定义相关的Field(域)
solrhome的schema.xml 文件
name:指定域的名称 type:指定域的类型 indexed: 是否索引 stored: 是否存储 required: 是否必须 multiValied: 是否多值
复制域
将某一个Filed中的数据复制到另一个域中
<field name="item_keywords" type="text_ik" indexed="true" stored="false" multiValued="true" />
<copyField source="item_category" dest="item_keywords"/> <copyField source="item_title" dest="item_keywords"/> <copyField source="item_seller" dest="item_keywords"/> <copyField source="item_brand" dest="item_keywords"/>
动态域
当需要动态扩充字段时,需要使用动态域
<dynamicField name="item_spec_*" type="string" indexed="true" stored="true"/>
注意type属性类型首字母一般小写
转载地址:http://rraz.baihongyu.com/