Solr全文检索技术之(介绍与安装)

 

 

Solr介绍​​​​​​

  • 什么是Solr

Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-serviceAPI接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。

Solr是apache的*开源项目,它是使用java开发 ,基于lucene的全文检索服务器。

Solr比lucene提供了更多的查询语句,而且它可扩展、可配置,同时它对lucene的性能进行了优化。

Solr是如何实现全文检索的呢?

索引流程:solr客户端(浏览器、java程序)可以向solr服务端发送POST请求,请求内容是包含Field等信息的一个xml文档,通过该文档,solr实现对索引的维护(增删改)

搜索流程:solr客户端(浏览器、java程序)可以向solr服务端发送GET请求,solr服务器返回一个xml/json文档。

  • Solr与lucene的区别

Lucene是一个全文检索引擎工具包,它只是一个jar包,不能独立运行,对外提供服务。

Solr是一个全文检索服务器,它可以单独运行在servlet容器,可以单独对外提供搜索和索引功能。Solr比lucene在开发全文检索功能时,更快捷、更方便。

Solr全文检索技术之(介绍与安装)


Solr的安装与配置

  • 下载Solr

Solr和lucene的版本是同步更新的,最新的版本是7.1.0/ 
下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/lucene/solr/      下载版本:7.1.0

Solr全文检索技术之(介绍与安装)

1. src.tgz:带src表示是带源码文件的压缩包,无src是已经编译过的压缩包 
2.      .tgzLinux相关操作系统使用的压缩包 
3.      .zipWindows操作系统使用的压缩包

  • 启动Solr

Solr全文检索技术之(介绍与安装)

安装完毕后在文件夹bin目录下启动cmd输入“solr start” 命令启动Solr

访问地址:http://localhost:8983/solr/..

访问成功如下图:

Solr全文检索技术之(介绍与安装)

  • Tomcat安装运行环境

要求:        jdk:1.8及以上     Solr:7.1      Web服务器:tomcat 8(改端口9080“为了和之后的Java服务器区分”

  • 操作步骤:

Solr全文检索技术之(介绍与安装)

Solr全文检索技术之(介绍与安装)

Solr全文检索技术之(介绍与安装)

Solr全文检索技术之(介绍与安装)

Solr全文检索技术之(介绍与安装)

Solr全文检索技术之(介绍与安装)

Solr全文检索技术之(介绍与安装)

成功页面:

Solr全文检索技术之(介绍与安装)

 

 

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

logging:显示solr运行出现的异常或错误

Core Admin:Solr Core的管理界面。在这里可以添加SolrCore实例。(主要有Add Core(添加核心), Unload(卸载核心),Rename(重命名核心),Reload(重新加载核心),Optimize(优化索引库) Add Core是添加core:主要是在instanceDir对应的文件夹里生成一个core.properties文件 )

Solr全文检索技术之(介绍与安装)

name:给core起的名字; 
instanceDir:与我们在配置solr到tomcat里时的solr_home里新建的core文件夹名一致; 
dataDir:确认Add Core时,会在new_core目录下生成名为data的文件夹 
config:new_core下的conf下的config配置文件(solrconfig.xml) 
schema: new_core下的conf下的schema文件(schema.xml) 

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

Core selector:需要在Core Admin里添加了core后才有可选项。

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

Solr全文检索技术之(介绍与安装)

 

  • Solr core的配置(创建)

Solr全文检索技术之(介绍与安装)

Solr全文检索技术之(介绍与安装)

Solr导入数据

  • 查看Core

Solr全文检索技术之(介绍与安装)

通过此查看创建的guo_core则说明没有相关配置文件,需要添加并修改。

  • DataImport导入数据:

该功能是将数据库中数据通过Sql语句方式导入到Solr索引库中。

第一步:添加jar包

D:\guoweixin\solr\solr-7.1.0\dist 下的jar

Solr全文检索技术之(介绍与安装)

Solr全文检索技术之(介绍与安装)

第二步:配置中文分词器

Solr全文检索技术之(介绍与安装)

Solr全文检索技术之(介绍与安装)

managed-schema文件详解:

Solr全文检索技术之(介绍与安装)

dynamicField详解(199行):

Solr全文检索技术之(介绍与安装)

uniqueKey:

Solr全文检索技术之(介绍与安装)

copyField:

Solr全文检索技术之(介绍与安装)

fieldType:

Solr全文检索技术之(介绍与安装)

Solr全文检索技术之(介绍与安装)

第三步:修改solrconfig.xml文件

Solr全文检索技术之(介绍与安装)

第四步:创建data-config.xml

Solr全文检索技术之(介绍与安装)

<?xml version="1.0" encoding="UTF-8" ?>

<dataConfig>

  <dataSource type="JdbcDataSource"

              driver="com.mysql.jdbc.Driver"

              url="jdbc:mysql://localhost:3306/solr"

              user="root"

              password="root"/>

  <document>

                  <entity name="products"  query="select pid,pname,catalog_name,price,description,picture from products ">

                                    <field column="pid" name="id"/> 

                                    <field column="pname" name="prod_pname"/> 

                                    <field column="catalog_name" name="prod_catalog_name"/> 

                                    <field column="price" name="prod_price"/> 

                                    <field column="description" name="prod_description"/> 

                                    <field column="picture" name="prod_picture"/> 

                  </entity>

  </document>

</dataConfig>

Solr全文检索技术之(介绍与安装)

第五步:定义域

Solr全文检索技术之(介绍与安装)

Solr全文检索技术之(介绍与安装)

<field name="prod_pname" type="solr_cnAnalyzer" indexed="true" stored="true" required="true"  />

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

        <field name="prod_price" type="pdouble" indexed="true" stored="true" required="true"  />

       <field name="prod_description" type="solr_cnAnalyzer" indexed="true" stored="true" required="true"  />

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

其中prod_pname需要模糊查询(中文分词),故将其类型改为solr_cnAnalyzer

Solr全文检索技术之(介绍与安装)

第五步:启动服务

Solr全文检索技术之(介绍与安装)

Solr全文检索技术之(介绍与安装)

查询描述

  查询的关键字,此参数最为重要,例如,q=id:1,默认为q=*:*,

  fl  指定返回(回显)哪些字段,用逗号或空格分隔,注意:字段区分大小写,例如,fl= id,title,sort

  start  返回结果的第几条记录开始,一般分页用,默认0开始

  rows  指定返回结果最多有多少条记录,默认值为 10,配合start实现分页

  sort  排序方式,例如id  desc 表示按照 “id” 降序

  wt  (writer type)指定输出格式,有 xml, json等

  fq  (filter query)过虑查询,提供一个可选的筛选器查询。返回在q查询符合结果中同时符合的fq条件的查询结果,例如:q=id:1&fq=sort:[1 TO 5],找关键字id为1 的,并且sort是1到5之间的。

  df   默认的查询字段,一般默认指定。

  h1  是否高亮。

客户端查询语法:

Solr全文检索技术之(介绍与安装)

Solr全文检索技术之(介绍与安装)

Solr全文检索技术之(介绍与安装)

Solr的安装和介绍就先到这里,等接下来有时间会把后端的代码实现也传上来,希望可以帮助有需要的兄弟。