1 Solr基本概念
1.1 什么是Solr
- Solr是基于Lucene的全文检索服务器
- Solr需要部署在Web容器中
- 使用POST方法向Solr服务器发送一个描述Field及其内容的XML文档,Solr根据xml文档添加、删除、更新索引。
1.2 Solr与Lucene的区别
Lucene是一个开元全文检索引擎工具包,并不是一个全文检索引擎。
Solr的目的是打造一款企业级引擎系统,他是一个搜索引擎服务,可以独立运行,通过Solr可以非常快速的构建企业的搜索引擎。
2 Solr配置
2.1 Solr目录结构
- bin: solr运行脚本
- contrib: solr的一些贡献软件,用于增强solar的功能
- dist: war、jar、相关依赖文件
- docs: API文档
- example: solr工程例子目录:
- solr: 包含了默认配置信息的Solr和Core目录
- multicore: 包含了在Solr的multicore中设置的多个Core目录
- webapps: 包括一个solr.war,该war可作为solr的运行实例工程
2.2 Solr整合Tomcat
2.2.1 SolrHome与SolrCore
创建一个SolrHome目录,SolrHome是Solr运行的主目录,目录中包括了运行Solr实例所有的配置文件和数据文件,Solr实例就是SolrCore,一个SolrHome可以包括多个SolrCore(Solr实例),每个SolrCore提供单独的搜索和索引服务。
example/solr是一个标准的SolrHome目录,其中example/solr/collection1是一个SolrCore目录
一个SolrCore对外单独提供索引和搜索接口。
2.2。2 整合步骤
- 安装tomcat。D:\temp\apache-tomcat-7.0.53
- 把solr的war包复制到tomcat 的webapp目录下。把\solr-4.10.3\dist\solr-4.10.3.war复制到D:\temp\apache-tomcat-7.0.53\webapps下。改名为solr.war
- solr.war解压。使用压缩工具解压或者启动tomcat自动解压。解压之后删除solr.war
- 把\solr-4.10.3\example\lib\ext目录下的所有的jar包添加到solr工程中
- 配置solrHome和solrCore。
- 创建一个solrhome(存放solr所有配置文件的一个文件夹)。\solr-4.10.3\example\solr目录就是一个标准的solrhome。
- 把\solr-4.10.3\example\solr文件夹复制到D:\temp\0108路径下,改名为solrhome,改名不是必须的,是为了便于理解。
- 在solrhome下有一个文件夹叫做collection1这就是一个solrcore。就是一个solr的实例。一个solrcore相当于mysql中一个数据库。Solrcore之间是相互隔离。
- 在solrcore中有一个文件夹叫做conf,包含了索引solr实例的配置信息。
- 在conf文件夹下有一个solrconfig.xml。配置实例的相关信息。如果使用默认配置可以不用做任何修改。
Xml的配置信息:
Lib:solr服务依赖的扩展包,默认的路径是collection1\lib文件夹,如果没有就创建一个
dataDir:配置了索引库的存放路径。默认路径是collection1\data文件夹,如果data文件夹,会自动创建。
告诉solr服务器配置文件也就是solrHome的位置。修改web.xml使用jndi的方式告诉solr服务器。
Solr/home名称必须是固定的。(apache下solr项目的web.xml)12345<env-entry><env-entry-name>solr/home</env-entry-name><env-entry-value>/Users/lixiwei-mac/app/solr-4.10.3/solrhome</env-entry-value><env-entry-type>java.lang.String</env-entry-type></env-entry>启动tomcat,访问http://localhost:8080/solr
3 使用SolrJ管理索引库
3.1 什么是SolrJ
solrj是访问Solr服务的java客户端,提供索引和搜索的请求方法,SolrJ通常在嵌入在业务系统中,通过SolrJ的API接口操作Solr服务,如下图:
3.2 依赖
|
|
3.3 代码实现
|
|