solr,
什么是solr?
Solr 是一个可扩展的,可部署,搜索/存储引擎,优化搜索大量以文本为中心的 数据
Solr (war包) 开源搜索框架 企业级
也可以用于存储 像NoSql一样 是一种非关系数据(非结构)存储和处理技术
Solr 是一个开源搜索平台,用于构建搜索应用程序。 它建立在 Lucene(全文搜索引擎) 之上
Solr 是企业级的,快速的和高度可扩展的 部署在Tomcat
sorl安装和配置(默认端口号为9100)
1.拷贝dist目录中的solr-4.10.3.war包到tomcat的webapps目录
2.拷贝example/lib/ext的所有jar包到tomcat中的solr的\WEB-INF\lib目录下
3.拷贝example/solr目录下的所有文件到本地硬盘改名为solrhome
4.修改web.xml文件,将evn-entry注释放开,改路径为e:\solrhome
//windows测试
http://localhost:8080/solr/#/collection1/query
//linux测试
http://192.168.25.135:8080/solr/#/
中文分析器IK Analyzer的安装
1. 将jar包拷贝到WEB-INF\lib目录下
2. 在WEB-INF下创建classes目录 并拷贝mydict.dic IKAnalyzer.cfg.xml ext_stopword.dic
3. 在solrhome\collection1\conf修改schema.xml加入配置
4.配置业务域
域相当于数据库的表字段,存放用户数据,用户根据也无需求去定义相关的Field(域),每一种对应一种数据,用户对同一种类型的数据进行相同的操作
域的常见属性:
name:指定域的名称
type:指定域的类型
stored:是否存储(复制域选择false)
require:是否必填
indexed:是否索引(需要查询的域都要建立索引,方便查询)
multiValued:是否多值
1).普通域 存储基本数据类型
2).复制域 不占用存储空间 copyField
复制域的作用在于将某一个 Field 中的数据复制到另一个域中
不进行保存 通过配置
3).动态域 动态扩充字段 规格不确定 后面加*
4. 测试1. 测试测试http://localhost:8080/solr/#/collection1/analysis将FieldType改成text_ik查看效果
关键字搜索
search_interface 引入实体类pojo
search_service(war) 引入interface dao pom(9004)
search_web(war) interface
search_interface创建接口
TbItem 在serch
criteria用 is查询
SpringDataSolr的Demo
操作步骤
1.创建springDataSolrDemo的maven的jar工程
2.pom坐标引入依赖,资料中的pom引入即可
3.spring配置文件(applicationContext-solr.xml)放到resources目录下
4.拷贝资源文件中的TbItem.java类,该pojo类已经注解关联了solr字段和属性的关系
5.完成对solr库数据增加,新增测试类TestTemplate
solr批量导入数据
操作步骤
1.创建pinyougou-solr-util的jar模块
2.pom文件引入dao模块,拷贝资源提供的spring配置文件到spring目录(注意需要spring目录下)
3.创建solrUtil工具类,目的是查询出所有tbitem状态为“1”的导入到solr库中
注意classpath*:spring/applicationContext*.xml,两个星号
还有导入的时候因为修改了pojo,别忘记重新install一下
4.创建SolrUtil.java
5.动态域的配置方式
商品页面关键字-搜索(后端部分)
操作步骤
1.创建pinyougou-search-interface的jar项目,pom引入pojo
2.创建pinyougou-search-service的war项目,pom引入search-interface,端口9004
资源文件中并拷贝web.xml,拷贝spring文件
3.再interface新建类ItemSearchService
4.在search业务层实现ItemSearchServiceImpl 关键字keywords
5.创建pinyougou-search-web工程war的,拷贝pom坐标,端口号是9104,依赖search-interface,拷贝提供的资源web.xml及页面
6.在search-web工程中创建ItemSearchController
7.创建service目录及创建searchService.js
8.创建controller目录及searchController.js
9.对search.html进行前端页面的更改