您好,欢迎访问三七文档
solr入门课程计划:1、solr服务介绍2、solr服务的安装3、solrhome的目录结构4、自定义索引库5、将数据库数据导入索引库6、solrj对索引库的维护7、solr案例1solr服务介绍1.1什么是solrSolristhepopular,blazing-fast,opensourceenterprisesearchplatformbuiltonApacheLucene™.Solr是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务。Solr可以独立运行在Jetty、Tomcat等这些Servlet容器中。Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。1.2solr与Lucene区别Lucene是一个开放源代码的全文检索引擎工具包,它不是一个完整的全文检索应用。Lucene仅提供了完整的查询引擎和索引引擎,目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者以Lucene为基础构建全文检索应用。Solr的目标是打造一款企业级的搜索引擎系统,它是基于Lucene一个搜索引擎服务,可以独立运行,通过Solr可以非常快速的构建企业的搜索引擎,通过Solr也可以高效的完成站内搜索功能。2solr服务安装与运行2.1下载地址:安装解压solr-4.10.3后的目录结构:2.3运行执行example目录下的start.jar即可。2.4访问运行在tomcat中2.5.1copysolr.war将solr解压后的/example/webapps目录下的solr.warcopy到tomcat的webapps目录下中。2.5.2启动tomcat2.5.2.1错误一通过查看日志,需要导入jar包。该包在example/lib/ext目录下。2.5.2.2错误二原因:需要指定索引库的位置(类似于访问项目需要指定数据库一样)。2.5.3指定索引库的位置为了不混淆,我们将example目录下的solr(solrhome)copy到d盘下。2.5.3.1通过catalina.bat指定通过tomcat的bin目录下的Catalina.bat来指定solr运行所需要指定的solr的仓库。2.5.3.2通过web.xml指定在tomcat的solr目录下,通过web.xml来指定solrhome的位置。3solrhome的目录结构3.1什么叫solrhomesolrhome顾名思义,就是solr的家,即solr的存放数据的仓库(索引库)。每个solrhome下可以有多个solrcore,这个就是用来存放索引的地方。solrhome--------对应数据库solrcore--------对应数据库下的表。3.2solrhome目录结构3.3solrcore目录结构3.3.1core.properties作用:用来指定solrcore(索引库)的名称3.3.2data作用:用来存放创建的索引文件。3.3.3conf3.3.3.1schema.xml配置文件作用:用来配置索引数据的字段名称、字段类型等。1、field节点作用:配置索引的字段,该节点具有以下常用属性:name:代表数据字段名称type:代表数据类型indexed:trueorfalse,代表是否被创建索引stored:trueorfalse,代表是否被存储multivalued:是否是多值,存储多个值时设置为true,比如存储一个用户的好友id(多个),商品的图片(多个,大图和小图)。2、dynamicField作用:动态的检索字段。例如:检索时,根据[product_i:手机]条件检索,这个时候我们无需重新定义一个product_i字段,可以通过*_i匹配来检索。3、uniqueKey作用:相当于数据库主键4、copyField作用:将多个字段的值复制到同一个目标字段中。检索时可以根据指定的dest的字段检索。source:源字段dest:目标字段5、fieldType作用:指定索引字段的类型。具有如下常见属性:name:索引字段的类型名,并filed节点中的name引用class:代表solr的类型analyzer:指定分词器,type=index/query,index:创建索引;query:查询索引tokenizer:指定分词器filter:指定过滤器3.3.3.2solrconfig.xml作用:定义了solr服务的一些处理规则,包括索引数据的存放位置;更新、删除、查询的一些规则配置。常用的节点有:luceneMatchVersion:指定底层使用的Lucene版本号lib:指定solr服务运行需要的jardataDir:指定索引的存放位置requestHandler:配置solrCRUD的规则4自定义索引库4.1copysolr的模板collection1copycollection1并改名为products(任意)4.2修改索引库名称4.3修改schema.xml文件配置索引字段。这里使用了IK分词器,需要将IK的jar包导入到solr中。4.4修改solrconfig.xml文件指定默认检索的字段信息。5将数据库数据导入索引库5.1添加dataimporthandlerjar包5.2引入jar包libdir=../lib/regex=solr-dataimporthandler-\d.*\.jar/5.3配置requestHandlerrequestHandlername=/dataimportclass=org.apache.solr.handler.dataimport.DataImportHandlerlstname=defaultsstrname=configdb-data-config.xml/str/lst/requestHandler5.4conf目录下添加db-data-config.xml5.5添加mysql驱动包到solr中5.6执行导入请求6solrj对索引库的维护6.1什么是solrjSolrjisajavaclienttoaccesssolr.Itoffersajavainterfacetoadd,update,andquerythesolrindex(solrj是通过Java客户端去操作solr,它提供了一个Java接口用于添加、更新和查询solr的索引)6.2添加索引6.3更新索引如果id相同,则执行更新操作。6.4根据索引查询6.4.1简单查询6.4.2复杂查询6.5删除索引6.5.1根据id删除6.5.2先查在删7JD案例7.1需求需求:1、根据关键字检索;2、根据商品分类3、根据价格过滤;4、根据价格排序;5、对检索内容高亮;6、分页7.2环境搭建7.2.1导入jar包略7.2.2添加配置文件略7.2.3添加jsp等静态资源7.3商品列表显示7.4创建pojo7.4.1创建Product根据jsp页面分析,Product应该有如下属性:7.4.2创建Result同理:根据jsp页面创建Result对象。7.5编写service接口、实现类接口:通过搜索的页面分析,我们controller层方法中需要接收5个形参。分别是:queryString、catalog_name、price、page、sort7.5.1service接口定义7.5.2service实现类7.6完善controller
本文标题:Solr课件
链接地址:https://www.777doc.com/doc-6896740 .html