<

Solr介绍


1.1   什么是solr

Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene****的全文搜索服务器Solr可以独立运行在Jetty、Tomcat等这些Servlet容器中。

Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化

使用Solr 进行创建索引和搜索索引的实现方法很简单,如下:

创建索引:客户端(可以是浏览器可以是Java****程序)用 POST 方法向 Solr 服务器发送一个描述 Field 及其内容的 XML 文档,Solr****服务器根据xml文档添加、删除、更新索引 。

搜索索引:客户端(可以是浏览器可以是Java****程序)用 GET方法向 Solr 服务器发送请求,然后对 Solr****服务器返回Xml、json等格式的查询结果进行解析,组织页面布局。Solr不提供构建页面UI的功能,但是Solr提供了一个管理界面,通过管理界面可以查询Solr的配置和运行情况

1.2   Solr和Lucene的区别

Lucene****是一个开放源代码的全文检索引擎工具包,它不是一个完整的全文检索应用。Lucene仅提供了完整的查询引擎和索引引擎,目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者以Lucene为基础构建全文检索应用。

Solr的目标是打造一款企业级的搜索引擎系统,它是基于Lucene一个搜索引擎服务,可以独立运行,通过Solr可以非常快速的构建企业的搜索引擎,通过Solr也可以高效的完成站内搜索功能。

solr的安装


1.1   下载solr

Solr和lucene的版本是同步更新的,最新的版本是5.2.1

本课程使用的版本:4.10.3

下载地址:http://archive.apache.org/dist/lucene/solr/

下载版本:4.10.3

Linux下需要下载lucene-4.10.3.tgz,windows下需要下载lucene-4.10.3.zip。

下载lucene-4.10.3.zip并解压:

bin:solr的运行脚本

contrib:solr的一些扩展jar包,用于增强solr的功能。

dist:该目录包含build过程中产生的war和jar文件,以及相关的依赖文件。

docs:solr的API文档

example:solr工程的例子目录:

l  example/solr

该目录是一个标准的SolrHome,它包含一个默认的SolrCore

l  example/multicore

该目录包含了在Solr的multicore中设置的多个Core目录。

l  example****/webapps

该目录中包括一个solr.war,该war可作为solr的运行实例工程。

licenses:solr相关的一些许可信息

1.2   运行环境

solr 需要运行在一个Servlet容器中,Solr4.10.3要求jdk使用1.7以上,Solr默认提供Jetty(java写的Servlet容器),本教程使用Tocmat作为Servlet容器,相关环境如下:

l  Solr:4.10.3

l  Jdk环境:1.7.0_72(solr4.10 不能使用jdk1.7以下)

l  Web服务器(servlet容器):Tomcat 7X

1.3   SolrCore配置

1.3.1  SolrHome和SolrCore

SolrHome是Solr运行的主目录,该目录中包括了多个SolrCore目录。SolrCore目录中包含了运行Solr实例所有的配置文件和数据文件,Solr实例就是SolrCore

一个SolrHome可以包括多个SolrCore(Solr实例),每个SolrCore提供单独的搜索和索引服务。

1.3.2  目录结构

SolrHome目录:

SolrCore目录:

1.3.3  创建SolrCore

创建SolrCore先要创建SolrHome。在solr解压包下solr-4.10.3\example\solr文件夹就是一个标准的SolrHome。

l  拷贝solr解压包下solr-4.10.3\example\solr文件夹。

l  复制该文件夹到本地的一个目录,把文件名称改为solrhome。

注:改名不是必须的,只是为了便于理解

l  打开SolrHome目录

SolrCore****创建成功。

1.3.4  配置SolrCore

在conf文件夹下有一个solrconfig.xml。这个文件是来配置SolrCore实例的相关信息。如果使用默认配置可以不用做任何修改。它里面包含了不少标签,但是我们关注的标签为:lib标签、datadir标签、requestHandler****标签

1.3.4.1        lib 标签

在solrconfig.xml中可以加载一些扩展的jar,solr.install.dir表示solrCore的目录位置,需要如下修改:

然后将contrib和dist两个目录拷贝到E:\12-solr\0505****下

1.3.4.2        datadir标签

每个SolrCore都有自己的索引文件目录 ,默认在SolrCore目录下的data中。

data数据目录下包括了index索引目录 和tlog日志文件目录。

如果不想使用默认的目录也可以通过solrConfig.xml更改索引目录 ,如下:

1.3.4.3        requestHandler标签

requestHandler请求处理器,定义了索引和搜索的访问方式。

通过/update维护索引,可以完成索引的添加、修改、删除操作。

提交xml、json数据完成索引维护,索引维护小节详细介绍。

通过/select搜索索引。

设置搜索参数完成搜索,搜索参数也可以设置一些默认值,如下:

<requestHandler name="/select" class="solr.SearchHandler">
    <!-- 设置默认的参数值,可以在请求地址中修改这些参数-->
    <lst name="defaults">
        <str name="echoParams">explicit</str>
        <int name="rows">10</int><!--显示数量-->
        <str name="wt">json</str><!--显示格式-->
        <str name="df">text</str><!--默认搜索字段-->
    </lst>
</requestHandler>

1.4   Solr工程部署

由于在项目中用到的web服务器大多数是用的Tomcat,所以就讲solr和Tomcat的整合。

1.4.1  安装Tomcat

1.4.2  把solr.war部署到Tomcat中

1、  从solr解压包下的solr-4.10.3\example\webapps目录中拷贝solr.war

2、  复制到tomcat安装目录的webapps文件夹下

1.4.3  解压缩solr.war

使用压缩工具解压或者启动tomcat自动解压。解压之后删除solr.war

1.4.4  添加solr服务的扩展依赖包(日志包)

l  把solr解压包下的solr-4.10.3\example\lib\ext目录下的所有jar包拷贝。

l  复制到解压缩后的solr工程的WEB-INF\lib目录

1.4.5  添加log4j.properties

1、  把solr解压包下solr-4.10.3\example\resources\log4j.properties文件进行拷贝

2、  在解压缩后的solr工程中的WEB-INF目录中创建classes文件夹

3、  复制log4j.properties文件到刚创建的classes目录

1.4.6  在solr应用的web.xml文件中,加载SolrHome

修改web.xml使用jndi的方式告诉solr服务器。

Solr/home****名称必须是固定的。

1.4.7  启动Tomcat进行访问

访问http://localhost:8080/solr/

出现以下界面则说明solr安装成功!!!

原文链接 https://www.hanyuanhun.cn | https://node.hanyuanhun.cn

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐