solr安装_solr安装部署 - CSDN
精华内容
参与话题
  • Solr 安装及配置

    万次阅读 2017-07-01 21:34:20
    什么是solr Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。 Solr可以...

    什么是solr

    Solr Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。

    Solr可以独立运行,运行在JettyTomcat等这些Servlet容器中,Solr索引的实现方法很简单,用POST方法向Solr服务器发送一个描述Field及其内容的XML文档,Solr根据xml文档添加、删除、更新索引 。Solr搜索只需要发送HTTP GET请求,然后对Solr返回Xmljson等格式的查询结果进行解析,组织页面布局。Solr不提供构建UI的功能,Solr提供了一个管理界面,通过管理界面可以查询Solr的配置和运行情况。

     

    SolrLucene的区别:

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

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

     

     Solr安装及配置

    Solr的下载:

    Solr官方网站(http://lucene.apache.org/solr/ )下载Solr4.10.3,根据Solr的运行环境,Linux下需要下载lucene-4.10.3.tgzwindows下需要下载lucene-4.10.3.zip

    Solr使用指南可参考:https://wiki.apache.org/solr/FrontPage。

     Solr的文件夹结构

    solr-4.10.3.zip解压:

     

     

    binsolr的运行脚本

    contribsolr的一些贡献软件/插件,用于增强solr的功能。

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

    docssolrAPI文档

    examplesolr工程的例子目录:

    l example/solr:

    该目录是一个包含了默认配置信息的SolrCore目录。

    l example/multicore

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

    l example/webapps:

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

    licensessolr相关的一些许可信息

    运行环境

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

      SolrSolr4.10.3

    Jdkjdk1.7.0_72

    Tomcatapache-tomcat-7.0.53

    Solr整合tomcat

    Solr HomeSolrCore:

    创建一个Solr home目录,SolrHomeSolr运行的主目录,目录中包括了运行Solr实例所有的配置文件和数据文件,Solr实例就是SolrCore,一个SolrHome可以包括多个SolrCoreSolr实例),每个SolrCore提供单独的搜索和索引服务。

     

    example\solr是一个solr home目录结构,如下:

     

     

    上图中collection1”是一个SolrCoreSolr实例)目录 ,目录内容如下所示:

     

     

    说明:

    collection1:叫做一个Solr运行实例SolrCoreSolrCore名称不固定,一个solr运行实例对外单独提供索引和搜索接口。

    solrHome中可以创建多个solr运行实例SolrCore

    一个solr的运行实例对应一个索引目录。

    confSolrCore的配置文件目录 。

    data目录存放索引文件需要创建

     

    整合步骤:

    第一步:安装tomcatD:\temp\apache-tomcat-7.0.53

    第二步:把solrwar包复制到tomcatwebapp目录下。

    \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工程中

    第五步:配置solrHomesolrCore

    1)创建一个solrhome(存放solr所有配置文件的一个文件夹)。\solr-4.10.3\example\solr目录就是一个标准的solrhome

    2)\solr-4.10.3\example\solr文件夹复制到D:\temp\0108路径下,改名为solrhome,改名不是必须的,是为了便于理解。

    3)solrhome下有一个文件夹叫做collection1这就是一个solrcore。就是一个solr的实例。一个solrcore相当于mysql中一个数据库。Solrcore之间是相互隔离。

    i. solrcore中有一个文件夹叫做conf,包含了索引solr实例的配置信息。

    ii. conf文件夹下有一个solrconfig.xml。配置实例的相关信息。如果使用默认配置可以不用做任何修改。

    Xml的配置信息:

    Libsolr服务依赖的扩展包,默认的路径是collection1\lib文件夹,如果没有  就创建一个

    dataDir:配置了索引库的存放路径。默认路径是collection1\data文件夹,如果没有data文件夹,会自动创建。

    requestHandler

     


     

    第六步:告诉solr服务器配置文件也就是solrHome的位置。修改web.xml使用jndi的方式告诉solr服务器。

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

     


     

    第七步:启动tomcat

    第八步:访问http://localhost:8080/solr/

     

    Solr后台管理

    管理界面

    Dashboard

    仪表盘,显示了该Solr实例开始启动运行的时间、版本、系统资源、jvm等信息。

    Logging

    Solr运行日志信息

    Cloud

    CloudSolrCloud,即Solr云(集群),当使用Solr Cloud模式运行时会显示此菜单,如下图是Solr Cloud的管理界面:

     


    Core Admin

    Solr Core的管理界面。Solr CoreSolr的一个独立运行实例单位,它可以对外提供索引和搜索服务,一个Solr工程可以运行多个SolrCoreSolr实例),一个Core对应一个索引目录。

     

    添加solrcore

    第一步:复制collection1改名为collection2

    第二步:修改core.propertiesname=collection2

    第三步:重启tomcat

    java properties

    SolrJVM运行环境中的属性信息,包括类路径、文件编码、jvm内存设置等信息。

     

    Tread Dump

    显示Solr Server中当前活跃线程信息,同时也可以跟踪线程运行栈信息。

    Core selector

    选择一个SolrCore进行详细操作,如下:

     

     Analysis


     

    通过此界面可以测试索引分析器和搜索分析器的执行情况。

     Dataimport

    可以定义数据导入处理器,从关系数据库将数据导入Solr索引库中。

     Document

    通过此菜单可以创建索引、更新索引、删除索引等操作,界面如下:

     

     

    /update表示更新索引,solr默认根据id(唯一约束)域来更新Document的内容,如果根据id值搜索不到id域则会执行添加操作,如果找到则更新。

    Query:

     

     

    通过/select执行搜索索引,必须指定“q”查询条件方可搜索。

    配置中文分析器

    Schema.xml

    schema.xml,在SolrCoreconf目录下,它是Solr数据表配置文件,它定义了加入索引的数据的数据类型的。主要包括FieldTypesFields和其他的一些缺省设置。

     

    FieldType域类型定义

    下边text_general”是Solr默认提供的FieldType,通过它说明FieldType定义的内容:

     

     

    FieldType子结点包括:name,class,positionIncrementGap等一些参数:

    name:是这个FieldType的名称

    class:是Solr提供的包solr.TextFieldsolr.TextField允许用户通过分析器来定制索引和查询,分析器包括一个分词器(tokenizer)和多个过滤器(filter

    positionIncrementGap:可选属性,定义在同一个文档中此类型数据的空白间隔,避免短语匹配错误,此值相当于Lucene的短语查询设置slop值,根据经验设置为100

     

    FieldType定义的时候最重要的就是定义这个类型的数据在建立索引和进行查询的时候要使用的分析器analyzer,包括分词和过滤

     

    索引分析器中:使用solr.StandardTokenizerFactory标准分词器solr.StopFilterFactory停用词过滤器solr.LowerCaseFilterFactory小写过滤器。

    搜索分析器中:使用solr.StandardTokenizerFactory标准分词器,solr.StopFilterFactory停用词过滤器,这里还用到了solr.SynonymFilterFactory同义词过滤器。

    Field定义

    fields结点内定义具体的Fieldfiled定义包括name,type(为之前定义过的各种FieldType,indexed(是否被索引),stored(是否被储存),multiValued(是否存储多个值)等属性。

    如下:

    <field name="name" type="text_general" indexed="true" stored="true"/>

    <field name="features" type="text_general" indexed="true" stored="true" multiValued="true"/>

     

    multiValued:该Field如果要存储多个值时设置为truesolr允许一个Field存储多个值,比如存储一个用户的好友id(多个),商品的图片(多个,大图和小图),通过使用solr查询要看出返回给客户端是数组:

     

    uniqueKey

    Solr中默认定义唯一主键keyid域,如下:

     

     

    Solr在删除、更新索引时使用id域进行判断,也可以自定义唯一主键。

    注意在创建索引时必须指定唯一约束。

    copyField复制域

    copyField复制域,可以将多个Field复制到一个Field中,以便进行统一的检索:

    比如,输入关键字搜索title标题内容content

    定义titlecontenttext的域:


     


     

    根据关键字只搜索text域的内容就相当于搜索titlecontent,将titlecontent复制到text中,如下:

     

    dynamicField(动态字段)

    动态字段就是不用指定具体的名称,只要定义字段名称的规则,例如定义一个 dynamicFieldname*_i,定义它的typetext,那么在使用这个字段的时候,任何以_i结尾的字段都被认为是符合这个定义的,例如:name_igender_ischool_i等。

     

    自定义Field名为:product_title_tproduct_title_tscheam.xml中的dynamicField规则匹配成功,如下:

     

    product_title_t”是以“_t”结尾。

     

    创建索引:

     

     

    搜索索引:

     

     

    安装中文分词器

    使用IKAnalyzer中文分析器。

     

    第一步:把IKAnalyzer2012FF_u1.jar添加到solr/WEB-INF/lib目录下。

    第二步:复制IKAnalyzer的配置文件和自定义词典和停用词词典到solrclasspath下。

    第三步:在schema.xml中添加一个自定义的fieldType,使用中文分析器。

    <!-- IKAnalyzer-->

        <fieldType name="text_ik" class="solr.TextField">

          <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>

        </fieldType>

     

    第四步:定义field,指定fieldtype属性为text_ik

    <!--IKAnalyzer Field-->

       <field name="title_ik" type="text_ik" indexed="true" stored="true" />

       <field name="content_ik" type="text_ik" indexed="true" stored="false" multiValued="true"/>

     

    第四步:重启tomcat

    测试:

     

    设置业务系统Field

    如果不使用Solr提供的Field可以针对具体的业务需要自定义一套Field,如下是商品信息Field

     

    <!--product-->

       <field name="product_name" type="text_ik" indexed="true" stored="true"/>

       <field name="product_price"  type="float" indexed="true" stored="true"/>

       <field name="product_description" type="text_ik" indexed="true" stored="false" />

       <field name="product_picture" type="string" indexed="false" stored="true" />

       <field name="product_catalog_name" type="string" indexed="true" stored="true" />

     

       <field name="product_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/>

       <copyField source="product_name" dest="product_keywords"/>

       <copyField source="product_description" dest="product_keywords"/>

     


    展开全文
  • Windows下solr安装与部署

    千次阅读 2018-04-11 16:24:46
    solr安装与部署过程中,要注意各个版本之间的选择是否与jdk、tomcat 相冲突。 solr 各个版本的下载地址:http://archive.apache.org/dist/lucene/solr/ 博主的环境选择:tomcat7、solr4、jdk1.8、Windows ...

    一、环境选择

    在solr 的安装与部署过程中,要注意各个版本之间的选择是否与jdk、tomcat 相冲突。

    solr 各个版本的下载地址:http://archive.apache.org/dist/lucene/solr/

    博主的环境选择:tomcat7、solr4、jdk1.8、Windows

    Linux 下配置Solr 同Windows 下步骤相同。

    二、安装过程

    1.下载对应版本的压缩包,并解压
    2.到解压后的dist目录下复制对应的solr war 包
    这里写图片描述
    3.将复制的war 包复制到tomcat 安装目录下的webapps目录,重命名为solr(为了方便访问),启动tomcat 解压war 包
    这里写图片描述
    4.到原solr 解压文件example\lib\ext的目录下,拷贝出所有的jar 包(日志包)
    这里写图片描述
    5.将拷贝的jar 包复制到tomcat下的 webapps\solr\WEB-INF\lib
    6.到原solr 解压文件example目录下,拷贝名为solr 的目录,复制到该盘符下,并重命名为solrhome(习惯命名)
    7.到tomcat webapps\solr\WEB-INF 下打开web.xml 文件,做如下配置
    这里写图片描述
    8.配置完成,开启tomcat ,访问http://localhost:8080/solr/,效果如图(部分截图)
    这里写图片描述

    三、配置多个solr 实例

    solrHome :solrhome 是solr 的最核心的目录,一个solrhome 中可以有多个solr 实例。
    solrCore :一个solrCore 就是一个solr 实例,solr 中实例与实例之间的文档库和索引库是相互隔离的。每个实例单独对外提供索引和文档的增删改查服务。
    solr 默认只有一个实例collection1,不过可以通过自己配置从而配置多个solr 实例。

    1.到solrhome 目录下复制一份collection1,重命名为collection2
    这里写图片描述
    2.找到collection2 下的core.properties文件,修改为name=collection2
    3.配置完成,重新启动tomcat,效果如下
    这里写图片描述

    展开全文
  • 解压下载的压缩包即可完成Solr安装。 打开DOS,路径切换至solr_home\bin,执行命令:solr start –p 8888,将solr在8888端口运行,看到以下图片就证明solr启动成功了。(Solr默认端口为8983) solr常用命令solr ...

    一、安装

    1. 官网下载地址
    2. 解压下载的压缩包即可完成Solr安装。
    3. 打开DOS,路径切换至solr_home\bin,执行命令:solr start –p 8888,将solr在8888端口运行,看到以下图片就证明solr启动成功了。(Solr默认端口为8983)
      在这里插入图片描述
      solr常用命令
      solr start –p p_num   启动solr
      solr restart –p p_num   重启solr
      solr stop –p p_num   关闭solr
      solr create –c c_name   创建一个核心	
      
    4. 在浏览器访问:localhost:8888,会出现以下页面。在这里插入图片描述
      solr安装到此已经完成。

    二、创建核心

    2.1 创建核心前准备工作

    每个核心都是solr的一个实例,一个solr服务可以创建多个核心,每个核心都可以进行自己独立配置。

    1. 切换至solr_home\server\solr目录,例如:D:\Program Files\solr-7.5.0\server\solr,在该目录下创建一个文件夹,文件夹名称与核心名称相同。
      在这里插入图片描述
    2. 将D:\Program Files\solr-7.5.0\server\solr\configsets_default路径下的conf文件夹复制到new_core目录(D:\Program Files\solr-7.5.0\server\solr\new_core)下。

    2.2 创建核心

    方式一:打开solr界面,进行如图顺序操作。(推荐)
    在这里插入图片描述
    方式二:bin目录下输入命令 solr create –c new_core

    三、schame

    schame文件可以对索引库的数据类型进行定义,对字段是否进行索引、储存等进行设置,要针对核心单独进行配置。
    schame的数据类型基本够用,如果不能满足需求,比如说对中文分词、拼音分词等,就可以自定义分词器。
    Solr 7.5的schema配置文件名为managed-schema,路径为solr_home\server\solr\new_core\conf\managed-schema(D:\Program Files\solr-7.5.0\server\solr\new_core\conf\managed-schema)。

    3.1 schema主要成员

    (1) fieldType:为field定义类型,最主要作用是定义分词器,分词器决定着如何从文档中检索关键字。
    (2) analyzer:fieldType的子元素,是分词器,由tokenizer和filter组成。例如

    <fieldType name="text_tr" class="solr.TextField" positionIncrementGap="100">
        <analyzer>
          <tokenizer class="solr.StandardTokenizerFactory"/>
          <filter class="solr.TurkishLowerCaseFilterFactory"/>
          <filter class="solr.StopFilterFactory" words="lang/stopwords_tr.txt" ignoreCase="false"/>
          <filter class="solr.SnowballPorterFilterFactory" language="Turkish"/>
        </analyzer>
      </fieldType>
    

    (3) field:字段,用来创建索引,如果这个字段需要生成索引,则需要设置的indexed为true,需要存储设置stored属性为true。例如:

    <field name="age" type="pint" indexed="true" stored="true"/>
    

    3.2 添加索引字段

    方式一:直接修改managed-schema配置文件(不推荐,修改后需要重启服务),例如:

    <field name="age" type="pint" indexed="true" stored="true"/>
    

    方式二:通过solr页面进行添加。(推荐,不需要重启服务)
    在这里插入图片描述

    3.3 配置中文分词器

    1. 下载中文分词器IKAnalyzer,下载地址,密码:igt9。
    2. 解压压缩包包,目录如下:
      在这里插入图片描述
    3. 将两个jar包复制到该路径下:D:\Program Files\solr-7.5.0\server\solr-webapp\webapp\WEB-INF\lib。
    4. 另外将三个配置文件复制到该路径下:D:\Program Files\solr-7.5.0\server\solr-webapp\webapp\WEB-INF\classes。如果没有classes文件夹就新建一个。
    5. 在schema中添加分词器。
      <fieldType name="text_ik" class="solr.TextField">
        <analyzer type="index">
      	  <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" conf="ik.conf"/>
      	  <filter class="solr.LowerCaseFilterFactory"/>
        </analyzer>
        <analyzer type="query">
      	  <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true" conf="ik.conf"/>
      	  <filter class="solr.LowerCaseFilterFactory"/>
        </analyzer>
      </fieldType>
      
    6. 在ext.dic文件中添加自定义的中文词组,以这句话为例:今天早上路过一家叫做爱的绽放的花店,看到一盆仙人球,毛茸茸的,甚是好看,我把它带回家,取名小毛球。
      在这里插入图片描述
      添加词组前,分词情况如下
      在这里插入图片描述
      ext.dic文件中添加自定义词组
      在这里插入图片描述
      重启服务,执行分词,结果如下:
      在这里插入图片描述

    四、导入索引数据(MySQL数据库为例)

    1. 创建MySQL数据库。
      在这里插入图片描述
    2. 在该路径下solr_home\server\solr\new_core\conf(D:\Program Files\solr-7.5.0\server\solr\new_core\conf)下新建my-data-config.xml文件。
      <?xml version="1.0" encoding="UTF-8" ?>
      <dataConfig>
          <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/solr_test"
                      user="root" password=""/>
          <document>
              <entity name="user" query="select * from user">
                  <field column="id" name="id"/>
                  <field column="age" name="age"/>
                  <field column="name" name="name"/>
                  <field column="hobby" name="hobby"/>
              </entity>
          </document>
      </dataConfig>
      
    3. 用solr添加数据库字段对应的索引字段,添加后打开managed-schema文件会看到:
      <field name="name" type="string" indexed="true" stored="true"/>
      <field name="age" type="pint" indexed="true" stored="true"/>
      <field name="hobby" type="string" indexed="true" stored="true"/>
      

    请勿添加id字段,该字段已存在,添加会报错

    1. 打开该路径下文件:solr_home\server\solr\new_core\conf\solrconfig.xml(D:\Program Files\solr-7.5.0\server\solr\new_core\conf\solrconfig.xml),随便找一个与requestHandler同级节点上添加以下配置。如图:
      在这里插入图片描述
      代码:
    <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
    	<lst name="defaults">
    		<str name="config">my-data-config.xml</str>
    	</lst>
    </requestHandler>
    
    1. 将solr_home\dist(D:\Program Files\solr-7.5.0\dist)目录下的solr-dataimporthandler-7.5.0.jar和MySQL驱动(随便找个MySQL驱动)复制到solr_home\server\solr-webapp\webapp\WEB-INF\lib(D:\Program Files\solr-7.5.0\server\solr-webapp\webapp\WEB-INF\lib)目录下。
    2. 重启solr服务。
    3. 打开solr页面,进行下面操作。
      在这里插入图片描述
    4. 检测数据是否导入成功。
      在这里插入图片描述

    五、Java客户端solrJ的使用

    5.1 导入pom

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>com.freesky</groupId>
        <artifactId>solr-test</artifactId>
        <version>1.0-SNAPSHOT</version>
        <dependencies>
            <!-- https://mvnrepository.com/artifact/org.apache.solr/solr-solrj -->
            <dependency>
                <groupId>org.apache.solr</groupId>
                <artifactId>solr-solrj</artifactId>
                <version>7.5.0</version>
            </dependency>
        </dependencies>
    </project>
    

    5.2 编写model

    public class User {
    
        @Field(value = "id")
        private String id;
        @Field(value = "name")
        private String name;
        @Field(value = "age")
        private Integer age;
        @Field(value = "hobby")
        private String hobby;
    
        public String getId() {
            return id;
        }
    
        public void setId(String id) {
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public Integer getAge() {
            return age;
        }
    
        public void setAge(Integer age) {
            this.age = age;
        }
    
        public String getHobby() {
            return hobby;
        }
    
        public void setHobby(String hobby) {
            this.hobby = hobby;
        }
    
        @Override
        public String toString() {
            return "Person{" +
                    "id=" + id +
                    ", name='" + name + '\'' +
                    ", age=" + age +
                    ", hobby=" + hobby +
                    '}';
        }
    }
    

    5.3 写测试代码

    public class Main {
        private static final String SOLR_URL = "http://localhost:8888/solr";
        private static final String CORE_NAME = "new_core";
        public static void main(String[] args) throws IOException, SolrServerException {
            HttpSolrClient client = new HttpSolrClient.Builder(SOLR_URL).withConnectionTimeout(10000).withSocketTimeout(60000).build();
            SolrQuery query = new SolrQuery();
            //设置要查询的字段
            query.setFields("id","name", "age","hobby");
            //查询全部
            QueryResponse response = client.query(CORE_NAME,query);
            //查询结果
            SolrDocumentList results = response.getResults();
            System.out.println("结果总数:" + results.getNumFound());
            //遍历列表
            System.out.println("文档结果:");
            for (SolrDocument doc : results) {
                System.out.printf("[id:%s,name:%s,age:%s,hobby:%s]\n", doc.get("id"), doc.get("name"), doc.get("age"), doc.get("hobby"));
            }
            //得到实体对象
            List<User> userList = response.getBeans(User.class);
            System.out.println("转为实体对象:\n"+Arrays.toString(userList.toArray()));
        }
    }
    

    按条件单个查询

    //查询name为“陈龙”的user
    query.set("q","name:陈龙" );
    

    按条件模糊查询

    //查询name以“四”结尾的user
    query.set("q","name:*四" );
    
    //查询name以“陈”开头的user
    query.set("q","name:陈*" );
    
    //查询name包含“玉”的user
    query.set("q","name:*玉*" );
    

    多条件查询

    //查询id为“1”,并且name为“陈龙”,或者age为“28”岁,或者爱好包含“钓鱼”的user
    query.set("q","id:1 AND name:陈龙 OR age:28 OR hobby:钓鱼" );
    

    过滤查询

    //过滤查询,age为1到30岁的user
    query.set("fq", "age:[1 TO 30]");
    

    设置排序

    //以age降序
    query.addSort("age", SolrQuery.ORDER.desc);
    

    设置分页

     //开始位置
     query.setStart(0);
     //每页3条
     query.setRows(3);
    

    点击下面头像下载配置好的solr服务
    在这里插入图片描述

    展开全文
  • Solr安装及入门使用教程

    千次阅读 2018-12-07 08:27:05
    Solr安装及配置 Solr简单使用 Solr简介 Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。用户可以通过https请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出...

    Solrs使用教程

    目录

    • Solr简介
    • Solr特点
    • Solr工作方式
    • Solr安装及配置
    • Solr简单使用

    Solr简介

    Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。用户可以通过https请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面, 是一款非常优秀的全文搜索引擎。
    Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过https请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果;

    Solr特点

    Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。
    文档通过Http利用XML 加到一个搜索集合中。查询该集合也是通过http收到一个XML/JSON响应来实现。它的主要特性包括:高效、灵活的缓存功能,垂直搜索功能,高亮显示搜索结果,通过索引复制来提高可用性,提供一套强大Data Schema来定义字段,类型和设置文本分析,提供基于Web的管理界面等。
    在这里插入图片描述

    Solr工作方式

    文档通过Http利用XML 加到一个搜索集合中。
    查询该集合也是通过http收到一个XML/JSON响应来实现。它的主要特性包括:高效、灵活的缓存功能,垂直搜索功能,高亮显示搜索结果,通过索引复制来提高可用性,提供一套强大Data Schema来定义字段,类型和设置文本分析,提供基于Web的管理界面等。
    在这里插入图片描述

    Solr安装及配置

    Solr安装包下载地址

    MySql的jar包下载地址

    Solr使用

    Solr简单命令
    开启命令:

     solr.cmd start
    

    重启命令:

    solr restart –p 8983
    

    关闭命令:

    solr.cmd stop -p 8983
    

    步骤1.把mysql的jar包放在C:\Solr\solr-7.3.1\server\solr-webapp\webapp\WEB-INF\lib目录下面,如图:
    在这里插入图片描述

    步骤2.以管理员的身份运行cmd,启动solr,命令如下:

    solr.cmd start
    

    在这里插入图片描述
    浏览器测试
    localhost:8983
    成功,如图:
    在这里插入图片描述

    步骤3.创建一个核心管理员,如图:
    在这里插入图片描述
    上图我们看到了报错,解决方法如下:
    C:\Solr\solr-7.3.1\server\solr\configsets_default目录下的conf复制到我们刚才创建的new_core目录下(C:\Solr\solr-7.3.1\server\solr\new_core的目录下),然后cmd输入重启命令:

    重启命令:

    solr restart –p 8983
    

    浏览器点击刷新后再点击Add core就创建成功了,如图:
    在这里插入图片描述
    创建成功:
    在这里插入图片描述
    步骤4.下面我们来配置中文的分词索引
    在下图中我们可以看到我们随便输入一些中文的词字,它不会把一个词放在一起,而是分开的。
    在这里插入图片描述
    那我们应该把整个词合并在一起呢,下面请看配置步骤:
    1.在C:\Solr\solr-7.3.1\server\solr\new_core\conf的目录下的文件solrconfig.xml中加入如下jar包:

    <lib dir="${solr.install.dir:../../../..}/contrib/analysis-extras/lucene-libs" regex="lucene-analyzers-smartcn-\d.*\.jar" />
    

    在这里插入图片描述

    2.在C:\Solr\solr-7.3.1\server\solr\new_core\conf的目录下的文件;
    managed-schema中添加如下配置:

    <fieldType name="text_ik_zd" class="solr.TextField" positionIncrementGap="100">	<analyzer type="index">			
                   <tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>	</analyzer>		
             <analyzer type="query">			
                  <tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>	 </analyzer>	
    </fieldType>
    

    (1) fieldType:为field定义类型,最主要作用是定义分词器,分词器决定着如何从文档中检索关键字
    (2)analyzer:他是fieldType下的子元素,这就是传说中的分词器,他由一组tokenizer和filter组成在这里插入图片描述
    搞定,cmd执行停止命令:

    solr.cmd stop -p 8983
    

    再输入运行命令,然后刷新浏览器,如下图:

    solr.cmd start
    

    或者重启服务命令:

     solr restart –p 8983
    

    这里是引用
    好了现在我们可以看到分词搜索可以用啦

    DIH导入索引数据

    DIH全称是Data Import Handler 数据导入处理器,顾名思义这是向solr中导入数据的,我们的solr目的就是为了能让我们的应用程序更快的查询出用户想要的数据,而数据存储在应用中的各种地方入xml、pdf、关系数据库中,那么solr首先就要能够获取这些数据并在这些数据中建立索引来达成快速搜索的目的,这里就列举我们最常用的从关系型数据库中向solr导入索引数据

    步骤1.C:\Solr\solr-7.3.1\server\solr\new_core\conf目录下的文件solrconfig.xml中加入如下配置和jar包:

    <lib dir="${solr.install.dir:../../../..}/dist" regex="solr-dataimporthandler-\d.*\.jar" />
    <lib dir="${solr.install.dir:../../../..}/dist" regex="solr-dataimporthandler-extras-\d.*\.jar" />
    
    <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
    	<lst name="defaults">
    		<!--datasorce config-->
    		<str name="config">data-config.xml</str>
    	</lst>
      </requestHandler>
    

    在这里插入图片描述
    在这里插入图片描述

    步骤2.在C:\Solr\solr-7.3.1\server\solr\new_core\conf目录下新增一个data-config.xml文件,在data-config.xml中加入如下配置:

    <?xml version="1.0" encoding="UTF-8" ?>
    <dataConfig>
    	<dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" 
    	url="jdbc:mysql://localhost:3306/test" user="root" password="root" name="productSource"/>
    	<document>
    		<entity name="product" query="SELECT pid,name,price,description FROM products " pk="pid" dataSource="productSource">
    			<field column="pid" name="product_id"/>
    			<field column="name" name="product_name"/>
    			<field column="price" name="product_price"/>
    			<field column="description" name="product_desc"/>
    		</entity>
    	</document>
    </dataConfig>
    
    

    在这里插入图片描述
    cmd重新启动,然后刷新浏览器:

    solr restart –p 8983
    

    步骤3.把数据库里的字段添加到Schema里,上图中我们有四个字段所以要添加四个
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    上图中第四步是选择数据类型,
    int对应pint,
    string 对应的是前面我们添加的分词text_ik_zd,
    float对应的是pfloat

    步骤3.添加完成后接下来我们要进行数据导入:
    在这里插入图片描述
    上图中我们成功的导入了两行数据,接下来我们把导入的两行数据以JSON的格式查询出来:
    在这里插入图片描述
    在这里插入图片描述
    上图就是我们从数据库查出来的两行数据
    我把数据库的表也放出来:

    CREATE TABLE `products` (
      `pid` INT(11) NOT NULL AUTO_INCREMENT,
      `name` VARCHAR(20) DEFAULT NULL,
      `price` FLOAT DEFAULT NULL,
      `description` VARCHAR(50) DEFAULT NULL,
      PRIMARY KEY (`pid`)
    ) ENGINE=INNODB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
    
    /*Data for the table `products` */
    
    INSERT  INTO `products`(`pid`,`name`,`price`,`description`) VALUES (1,'烧饼',22,'阿斯顿发生'),(2,'长皮',2,'的说法地方');
    

    PS:到这里基本上已经介绍完了,如果又不懂的地方欢迎留言

    展开全文
  • solr安装(单机版)

    2019-06-15 02:30:58
    Solr官方网站(http://lucene.apache.org/solr/ )下载Solr4.10.3,根据Solr的运行环境,Linux下需要下载lucene-4.10.3.tgz,windows下需要下载lucene-4.10.3.zip。 Solr使用指南可参考:...
  • Solr的下载,安装,启动及配置目录

    千次阅读 2019-01-24 19:26:27
    Solr的下载&amp;amp;amp;gt;安装&amp;amp;amp;gt;启动及配置目录先说几句话,希望我提供的内容可以对你有一定的帮助,希望让你觉得既轻松又好用,如果有这样的体验感觉,请告诉我,让我也分享一下你的快乐!简述:...
  • 下载地址: https://mirrors.tuna.tsinghua.edu.cn/apache/lucene/solr/8.1.1/ 注:这里我使用的8.1.1版本,可以根据自己需要选择版本。...一、安装配置solr 1、解压 tar zxf solr-8.1.1.tgz 解压后目录...
  • Solr】——Solr7安装教程

    万次阅读 热门讨论 2018-06-25 16:26:50
    前提  solr已经升级7.1,但是我们公司的solr还是使用的4.4,你们说low不low...solr7.1安装  solr7.1官方下载地址  在solr5以前solr的启动都有tomcat作为容器,但是从solr5以后solr内部集成jetty服务器,可以通过bin
  • 一、Solr 下载与安装 二、Solr 的启动 1. 设置节点数 2. 设置端口号 3. 创建集合 4. 指定配置 三、Solr 的关闭与重启 四、遇到的问题 问题1:Max Processes Limit 问题2:不能使用 root 用户 问题3...
  • solr安装

    千次阅读 2013-11-26 10:42:53
    Solr是一个基于Apache Lucene的开源企业级搜索平台,主要功能包括全文检索,高亮命中(hit highlighting),分面搜索(faceted search),近实时索引,动态集群,数据库集成,富文本(e.g. Word,PDF)索引,空间搜索;通过...
  • Solr安装

    2016-04-19 23:02:43
    Linux下solr的详细安装
  • Solr安装和启动

    2019-06-04 15:44:35
    业务中为了支持会员和订单数据的复杂字段查询,提高查询效率,采用了分库分表存储+solr查询的策略。 把数据放在RDS中的同时也放在...solr的安装:apache官网下载solr安装文件,上传到服务器解压。solr是内置了jett...
  • 我的环境是Ubuntu 14.04, 同时需要确定JDK是否安装安装参考:https://www.linuxidc.com/Linux/2017-06/144732.htm 2.下载solr-7.6.0 官网下载:速度较慢 wget ...
  • Solr安装配置

    万次阅读 2017-08-11 09:10:41
    1 概述Apache Solr是一个功能强大的搜索服务器,它支持REST风格API。Solr是基于Lucene的,Lucene 支持强大的匹配能力,如短语,通配符,连接,分组和更多不同的数据类型。它使用 Apache Zookeeper特别针对高流量进行...
  • 2.solr单机启动 3.solr云启动 索引Techproducts数据 基本搜索 1.下载 地址:https://lucene.apache.org/solr/ 下载最新版就好 2.solr单机启动 下载下来的zip或tar解压 在解压目录下bin下执行 solr start -p ...
  • solr安装和部署

    千次阅读 2017-09-15 11:54:17
    安装部署二话不说,管他什么东西,我们先部署一个玩玩,体会一下。 部署方式一 传统的方式,安装一个tomcat,下载solr的war包 部署方式二 在solr5以后,自带了jetty作为服务器,可以自行启动,我们也重点说这个说,...
  • 此版本安装版本为solr-4.10.3,下载地址为: 下载地址:... 下载版本:4.10.3.zip 服务器版本:tomcat7或者tomcat8都可以。 ...解压solr安装目录结构如下: Bin:solr的脚本 Contrib:solr为了...
  • ubtuntu solr安装配置

    2018-09-28 11:58:56
    ubtuntu solr安装配置 ubtuntu版本: 安装solr需要用到jdk和tomcat  jdk 1.8 tomcat8 solr版本 solr-7.2.0.tgz 下载好之后解压 tar -zxvf solr-7.2.0.tgz solr目录结构 把 solr-7.2.0\server\solr...
  • CDH6.3.1 solr安装

    2020-07-14 11:10:06
    1 cluster1集群, 添加服务,选择solr 2 集群安装solr云,选择3台机器安装,完成即可 3 安装完成后,可以点击solr实例,任意节点的实例 查看WEB UI,正常应该如下: 4 安装问题: 4.1 问题描述:第一次...
  • Apache Solr 安装及启动

    2019-01-07 20:43:59
    1.下载地址  https://lucene.apache.org/solr/ 下载解压后目录如下 bin:启动和停止服务器的脚本。example: 示例。server/logs 文件夹,所有Solr日志都写入该文件夹。server/solr文件夹包含...Solr内置Jetty...
1 2 3 4 5 ... 20
收藏数 18,507
精华内容 7,402
关键字:

solr安装