一、什么是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的配置和运行情况。

    Solr是一个可以独立运行的搜索服务器,使用solr进行全文检索服务的话,只需要通过http请求访问该服务器即可。

二、 Solr和Lucene的区别

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

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

solr使用java进行数据导入 solr搭建_solr使用java进行数据导入

 

三、Solr的安装和配置

1.下载Solr

    下载地址:http://archive.apache.org/dist/lucene/solr/,本文使用的是solr-4.10.3版本。

    解压后目录:

solr使用java进行数据导入 solr搭建_solr_02

    目录说明:

  • bin:solr的运行脚本
  • contrib:solr的一些扩展jar包,用于增强solr的功能。
  • dist:该目录包含build过程中产生的war和jar文件,以及相关的依赖文件。
  • docs:solr的API文档
  • example:solr工程的例子目录:
  • example/solr:该目录是一个标准的SolrHome,它包含一个默认的SolrCore
  • example/multicore:该目录包含了在Solr的multicore中设置的多个Core目录。
  • example/webapps:该目录中包括一个solr.war,该war可作为solr的运行实例工程。
  • licenses:solr相关的一些许可信息。

 2.运行环境

    solr 需要运行在一个Servlet容器中,Solr4.10.3要求jdk使用1.7以上,Solr默认提供Jetty(java写的Servlet容器),

    使用jetty启动:

    使用cmd命令行,进入solr-4.10.3/example文件夹

    启动命令java -jar start.jar

  

solr使用java进行数据导入 solr搭建_solr_03

    启动后访问地址:http://127.0.0.1:8983/solr

 

solr使用java进行数据导入 solr搭建_全文检索_04

 

 

3.Solr配置

    3.1 SolrHome和SolrCore

    SolrHome是Solr服务运行的主目录,该目录中包括了多个SolrCore目录。SolrCore目录中包含了运行Solr实例所有的配置文件和数据文件,Solr实例就是SolrCore。每个 SolrCore提供单独的搜索和索引服务。

3.2 目录结构

    SolrHome目录: solr-4.10.3/example/solr/

 

solr使用java进行数据导入 solr搭建_solr_05

 

    SolrCore目录:solr-4.10.3/example/solr/collection1

 

solr使用java进行数据导入 solr搭建_搜索_06

 

3.3 创建SolrCore

    创建SolrCore先要创建SolrHome。在solr解压包下solr-4.10.3\example\solr文件夹就是一个标准的SolrHome,只需要将它复制到指定的目录下即可。

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

 

solr使用java进行数据导入 solr搭建_solr_07

 

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

3.4 配置SolrCore

     其实就是配置SolrCore目录下的conf/solrconfig.xml

  

solr使用java进行数据导入 solr搭建_搜索_08

    这个文件是来配置SolrCore实例的相关信息。如果使用默认配置可以不用做任何修改。    

    配置SolrCore的data目录。

    data目录用来存放SolrCore的索引文件和tlog日志文件

    solr.data.dir表示${SolrCore}/data的目录位置:

solr使用java进行数据导入 solr搭建_solr_09