搜索引擎solr(一)--安装及基本使用

来源:互联网 发布:淘宝网小虫米子 编辑:程序博客网 时间:2024/06/05 03:18

一、solr简介

solr是以文本为中心,面向文档的搜索引擎,其实也是一个java web应用。底层采用lucene建索引。

二、solr使用场景

1、大数据量的文本搜索

由于solr擅长于文本处理,因此solr擅长大数据量的文本搜索。

2、缓存

由于solr具有内存缓存,可将最近查询数据保留在内存中,便于下次查询,因此,也可将solr用于缓存。

solr的默认缓存置换算法是LRU(least recently used),即最近最久未使用算法。

三、solr构成

solr主要包括两部分,solr主目录和web应用。

1、solr主目录(solr存放core的目录)

solr主目录里是根据需要建立的一个个core,一个core代表了一类文档的集合collection(可以理解为数据库中的表),

里面定义了文档的字段(可以理解为数据库表中的字段)。

core位于server/solr目录下,主要包含conf目录(里面是配置文件)和data目录(主面是索引等数据),以及
core.properties文件(当前core的属性)。

2、web应用

用于启动solr及在上进行查询等操作

四、core的主要配置文件

以建立名称为stu的core为例,其配置文件在server/solr/stu/conf目录中,主要有schame.xml配置文件、

managed-schema(和schame.xml一样,通常用这个即可,不用schame.xml)配置文件和

solrconfig.xml配置文件。

1、managed-schema(schame.xml功能与此一样的)配置文件

managed-schema定义当前core的索引结构,即是自己需要的字段(可以理解为数据库表内的字段),同时里面还包含了字段类型定义等信息。

2、solrconfig.xm配置文件

solrconfig.xm定义了当前core的主要配置,包括各种处理器。

五、安装和启动步骤

1、下载solr

下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/lucene/solr/7.2.0/solr-7.2.0.tgz

2、解压后放到安装目录,并进入solr目录 

3、进入solr的core目录

cd  server/solr/

4、启动solr

启动solr,即bin/solr start -p 8983

5、web页面查看

打开浏览器页面,输入地址http://127.0.0.1:8983,即可看solr已经正常启动了。

六、新建core步骤(以core的名称为stu为例)

1、进入solr的core主目录

cd server/solr

2、创建新core的目录stu

mkdir stu

3、复制core的默认配置

 cp -r configsets/sample_techproducts_configs/conf stu/

4、加载新建的core

打开浏览器页面,输入地址http://127.0.0.1:8983
点左侧Core Admain,在右侧输入新建core的名称stu、目录stu,其它的默认即可
最后点击Add Core,新建core就完成了。

此时在左侧Core Selector下拉框即可看见新的stu。

5、定义core的索引结构

在stu目录下,再进入conf目录,修改managed-schema文件,删除用于示例的field类型(但field的name为_version_、_root_、text、text_rev保留,这是solr默认需要的)

和copyField类型的字段,根据自己需要添加stu的索引字段。

字段内容示例如下:

  <field name="id" type="string" multiValued="false" indexed="true" required="true" stored="true"/>
  <field name="stu_id" type="string" default="" indexed="true" stored="true"/>
  <field name="stu_name" type="string" default="" indexed="true" stored="true"/>
  <field name="create_time" type="tdate" default="" indexed="true" stored="true"/>

<uniqueKey>id</uniqueKey>

定义完后,再回到web页面,重新加载stu,即reload。

此至,新的core就建立完成。

七、导数据到solr步骤(直接从数据库中)

导数据到solr的方式有很多,在此介绍直接从mysql数据库导数据到solr中。

1、添加数据库连接驱动器mysql-connector-java-5.1.30.jar(可自行在网上下载)到solr根目录下的dist目录中

2、在conf目录下添加连接数据库配置文件data-config.xml

内容示例如下:

<?xml version="1.0" encoding="UTF-8"?>
<dataConfig>
<dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/school" user="admin" password="123456" batchSize="-1" />
    <document>
        <entity name="stu" query="select id ,stu_id,stu_name,create_time from stu ">
            <field column="id" name="id" />
            <field column="stu_id" name="stu_id" />
            <field column="stu_name" name="stu_name" />
            <field column="create_time" name="create_time" />
        </entity>
    </document>
</dataConfig>

3、在solrconfig.xml文件中添加DIH(data import handler)的JAR文件和依赖文件(连接数据库配置文件data-config.xml)的配置

示例如下:

<lib dir="${solr.install.dir:../../../..}/dist" regex="solr-dataimporthandler-7.2.0.jar" />
<lib dir="${solr.install.dir:../../../..}/dist" regex="mysql-connector-java-5.1.30.jar" />
  <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
        <lst name="defaults">
            <str name="config">data-config.xml</str>
        </lst>
  </requestHandler>

4、在solr的web管理页面中导入数据

在web页面左侧Core Selector下拉框中选择stu,左侧展开后再选择DataImport,再在右侧Command下选择full-import,entity选择stu,

最后点击Execue,等会,数据库中stu表的数据就导入solr中stu的core中。

至此,数据便导入完成,点击query便可查看导入solr中的数据了。


原创粉丝点击