zoukankan      html  css  js  c++  java
  • Solr简介以及安装

    1 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也可以高效的完成站内搜索功能。

    2 Solr安装配置
    2.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工程的例子目录:
     example/solr:
    该目录是一个标准的SolrHome,它包含一个默认的SolrCore
     example/multicore:
    该目录包含了在Solr的multicore中设置的多个Core目录。
     example/webapps:
    该目录中包括一个solr.war,该war可作为solr的运行实例工程。
    licenses:solr相关的一些许可信息

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

     Solr:4.10.3
     Jdk环境:1.7.0_72(solr4.10 不能使用jdk1.7以下)
     Web服务器(servlet容器):Tomcat 7X

    2.3 SolrCore配置
    2.3.1 SolrHome和SolrCore
    SolrHome是Solr运行的主目录,该目录中包括了多个SolrCore目录。SolrCore目录中包含了运行Solr实例所有的配置文件和数据文件,Solr实例就是SolrCore。
    一个SolrHome可以包括多个SolrCore(Solr实例),每个SolrCore提供单独的搜索和索引服务。
    2.3.2 目录结构
    SolrHome目录:
    这里写图片描述
    SolrCore目录:
    这里写图片描述
    2.3.3 创建SolrCore
    创建SolrCore先要创建SolrHome。在solr解压包下solr-4.10.3examplesolr文件夹就是一个标准的SolrHome。

     拷贝solr解压包下solr-4.10.3examplesolr文件夹。
    这里写图片描述
     复制该文件夹到本地的一个目录,把文件名称改为solrhome。
    注:改名不是必须的,只是为了便于理解

    这里写图片描述
     打开SolrHome目录
    这里写图片描述
    SolrCore创建成功。
    2.3.4 配置SolrCore
    在conf文件夹下有一个solrconfig.xml。这个文件是来配置SolrCore实例的相关信息。如果使用默认配置可以不用做任何修改。它里面包含了不少标签,但是我们关注的标签为:lib标签、datadir标签、requestHandler标签。

    2.3.4.1 lib 标签
    在solrconfig.xml中可以加载一些扩展的jar,solr.install.dir表示solrCore的目录位置,需要如下修改:
    这里写图片描述

    然后将contrib和dist两个目录拷贝到E:12-solr505下
    2.3.4.2 datadir标签
    每个SolrCore都有自己的索引文件目录 ,默认在SolrCore目录下的data中。
    这里写图片描述
    data数据目录下包括了index索引目录 和tlog日志文件目录。
    如果不想使用默认的目录也可以通过solrConfig.xml更改索引目录 ,如下:
    这里写图片描述

    2.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>

    2.4 Solr工程部署
    由于在项目中用到的web服务器大多数是用的Tomcat,所以就讲solr和Tomcat的整合。
    2.4.1 安装Tomcat
    这里写图片描述

    2.4.2 把solr.war部署到Tomcat中
    1、 从solr解压包下的solr-4.10.3examplewebapps目录中拷贝solr.war
    这里写图片描述
    2、 复制到tomcat安装目录的webapps文件夹下
    这里写图片描述
    2.4.3 解压缩solr.war
    使用压缩工具解压或者启动tomcat自动解压。解压之后删除solr.war
    这里写图片描述
    2.4.4 添加solr服务的扩展依赖包(日志包)
     把solr解压包下的solr-4.10.3examplelibext目录下的所有jar包拷贝。
    这里写图片描述
     复制到解压缩后的solr工程的WEB-INFlib目录
    这里写图片描述

    2.4.5 添加log4j.properties
    1、 把solr解压包下solr-4.10.3example esourceslog4j.properties文件进行拷贝
    这里写图片描述
    2、 在解压缩后的solr工程中的WEB-INF目录中创建classes文件夹
    这里写图片描述

    3、 复制log4j.properties文件到刚创建的classes目录
    这里写图片描述

    2.4.6 在solr应用的web.xml文件中,加载SolrHome
    修改web.xml使用jndi的方式告诉solr服务器。
    Solr/home名称必须是固定的。
    这里写图片描述

    2.4.7 启动Tomcat进行访问
    访问http://localhost:8080/solr/
    出现以下界面则说明solr安装成功!!!
    这里写图片描述

    2.5 管理界面功能介绍
    2.5.1 Dashboard
    仪表盘,显示了该Solr实例开始启动运行的时间、版本、系统资源、jvm等信息。
    2.5.2 Logging
    Solr运行日志信息
    2.5.3 Cloud
    Cloud即SolrCloud,即Solr云(集群),当使用Solr Cloud模式运行时会显示此菜单,该部分功能在第二个项目,即电商项目会讲解。
    2.5.4 Core Admin
    Solr Core的管理界面。在这里可以添加SolrCore实例。
    2.5.5 java properties
    Solr在JVM 运行环境中的属性信息,包括类路径、文件编码、jvm内存设置等信息。
    2.5.6 Tread Dump
    显示Solr Server中当前活跃线程信息,同时也可以跟踪线程运行栈信息。
    2.5.7 Core selector(重点)
    选择一个SolrCore进行详细操作,如下:
    这里写图片描述
    2.5.7.1 Analysis(重点)
    这里写图片描述
    通过此界面可以测试索引分析器和搜索分析器的执行情况。
    注:solr中,分析器是绑定在域的类型中的。

    2.5.7.2 dataimport
    可以定义数据导入处理器,从关系数据库将数据导入到Solr索引库中。
    默认没有配置,需要手工配置。
    2.5.7.3 Document(重点)
    通过/update表示更新索引,solr默认根据id(唯一约束)域来更新Document的内容,如果根据id值搜索不到id域则会执行添加操作,如果找到则更新。

    通过此菜单可以创建索引、更新索引、删除索引等操作,界面如下:
    这里写图片描述

     overwrite=”true” : solr在做索引的时候,如果文档已经存在,就用xml中的文档进行替换
     commitWithin=”1000” : solr 在做索引的时候,每个1000(1秒)毫秒,做一次文档提交。为了方便测试也可以在Document中立即提交,后添加“”
    2.5.7.4 Query(重点)
    通过/select执行搜索索引,必须指定“q”查询条件方可搜索。
    这里写图片描述

    2.6 多solrcore配置
    配置多SolrCore的好处:
    1. 一个solr工程对外通过SorlCore 提供服务,每个SolrCore相当于一个数据库,这个功能就相当于一个mysql可以运行多个数据库。
    2. 将索引数据分SolrCore存储,方便对索引数据管理维护。
    3. SolrCloud集群需要使用多core。

    复制原来的core目录为collection2,目录结构如下:
    这里写图片描述

    修改collection2下的core.properties,如下:
    这里写图片描述
    演示多core的使用,在collection1和collection2中分别创建索引、搜索索引。

  • 相关阅读:
    stm32 usart 串口
    stm32 usart 串口
    stm32 PWM
    stm32 PWM
    stm32 定时器 通用定时器
    stm32 定时器 通用定时器
    stm32 外部中断
    linux+jre+apache+mysql+tomcat调优
    Cent OS服务器配置(JDK+Tomcat+MySQL)
    linux---文本编辑vi
  • 原文地址:https://www.cnblogs.com/linmsen/p/11729623.html
Copyright © 2011-2022 走看看