Solr框架 01 Solr框架简介,安装,配置(Analysis,Dataimport)

这篇具有很好参考价值的文章主要介绍了Solr框架 01 Solr框架简介,安装,配置(Analysis,Dataimport)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Solr简介:
Solr是一个高性能,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。

Solr本质就是一个Java web 项目,且内嵌了Jetty服务器,所以安装起来非常方便。客户端操作Solr的过程和平时我们所写项目一样,就是请求Solr中控制器,处理完数据后把结果响应给客户端。

一.正向索引和反向索引
只要讨论搜索就不得不提的两个概念:正向索引(forward index)和反向索引(inverted index)。
正向索引:从文档内容到词组的过程。每次搜索的时候需要搜索所有文档,每个文档比较搜索条件和词组。
Solr框架 01 Solr框架简介,安装,配置(Analysis,Dataimport)
反向索引:是正向索引的逆向。建立词组和文档的映射关系。通过找到词组就能找到文档内容。(和新华字典找字很像)Solr框架 01 Solr框架简介,安装,配置(Analysis,Dataimport)

二.Solr搜索原理
Solr的搜索原理
Solr能够提升检索效率的主要原因就是分词和索引(反向索引)。
分词:会对搜索条件/存储内容进行分词,分成日常所使用的词语。
索引:存储在Solr中内容会按照程序员的要求来是否建立索引。如果要求建立索引会把存储内容中关键字(分词)建立索引。
Solr框架 01 Solr框架简介,安装,配置(Analysis,Dataimport)

三.Solr中数据存储说明
Solr为了给内容建立索引,所以Solr就必须具备数据存储能力。所有需要被搜索的内容都需要存储在Solr中,在开发中需要把数据库中数据添加到Solr中进行初始化,每次修改数据库中数据还需要同步Solr中的数据。
Solr中数据存储是存储在Document对象中,对象中可以包含的属性和属性类型都定义在schema.xml中。

Solr单机版安装

Solr是使用Java编写,所以必选先安装JDK。
1.1上传并解压
上传压缩包solr-8.2.0.tgz到/usr/local/tmp中。
解压

# cd /usr/local/tmp
# tar zxf solr-8.2.0.tgz

1.2复制到/usr/local中

# cp -r solr-8.2.0 ../solr

1.3Solr常用目录简介
Solr框架 01 Solr框架简介,安装,配置(Analysis,Dataimport)
bin目录:可执行文件所在目录。
dist目录:Solr对外提供的核心、扩展、插件等代码jar文件。
server目录:Solr搜索应用服务器核心目录。
server/solr:Solr的索引库所在位置
server/solr-webapp:Solr的WAR核心应用
server/etc:Solr的核心配置

1.4修改启动参数
修改启动参数,否则启动时报警告。提示设置SOLR_ULIMIT_CHECKS=false

# cd /usr/local/solr/bin
# vim solr.in.sh

Solr框架 01 Solr框架简介,安装,配置(Analysis,Dataimport)
1.5启动Solr
Solr内嵌Jetty,直接启动即可。默认监听8983端口。
Solr默认不推荐root账户启动,如果是root账户启动需要添加-force参数。

# ./solr start -force

四.Solr可视化管理界面(web界面)
在关闭防火墙的前提下,可以在windows的浏览器中访问Solr。
输入: http://192.168.32.133:8983 就可以访问Solr的可视化管理界面。
左侧有5个菜单。分别是:
(1)Dashboard:面板显示Solr的总体信息。
(2)Logging:日志
(3)Core Admin:Solr的核心。类似于数据的Database
(4)Java Perperties:所有Java相关属性。
(5)Thread Dump:线程相关信息。
(6)如果有Core,将显示在此处。
Solr框架 01 Solr框架简介,安装,配置(Analysis,Dataimport)
Solr配置:
五.Solr新建核心(索引库的创建)
Solr安装完成后默认是没有核心的。需要手动配置。
需要在solr/server/solr下新建文件夹,并给定配置文件,否则无法建立。
Solr框架 01 Solr框架简介,安装,配置(Analysis,Dataimport)
1.1新建目录
在/usr/local/solr/server/solr中新建自定义名称目录。此处示例名称为testcore。一般一张表对应一个文件夹

# cd /usr/local/solr/server/solr
# mkdir testcore

1.2复制配置文件
在configsets里面包含了_default和sample_techproducts_configs。里面都是配置文件示例。_default属于默认配置,较纯净。sample_techproducts_configs是带有了一些配置示例。

# cp -r configsets/_default/conf/  testcore/

1.3填写Core信息
在可视化管理界面中Core Admin中编写信息后点击Add Core后,短暂延迟后testcore就会创建成功。schema处不用更改。
Solr框架 01 Solr框架简介,安装,配置(Analysis,Dataimport)
1.4出现testcore
在客户端管理界面中,选择新建的Core后,就可以按照自己项目的需求进行操作了。Solr框架 01 Solr框架简介,安装,配置(Analysis,Dataimport)
六.分词Analysis
在Solr可视化管理界面中,Core的管理菜单项中都会有Analysis。表示根据Scheme.xml(managed-schema)中配置要求进行解析。
对英文解析就比较简单了,只要按照空格把英文语句拆分成英文单词即可。
Solr框架 01 Solr框架简介,安装,配置(Analysis,Dataimport)
但是如果条件是中文时,把一句话按照字进行拆分就不是很合理了。正确的方式是按照合理的词组进行拆分。
Solr框架 01 Solr框架简介,安装,配置(Analysis,Dataimport)
1.1中文分词器安装及配置步骤
上传ik-analyzer.jar到webapps中。
去https://search.maven.org/search?q=com.github.magese下载对应版本的ik-analyzer。
1.2修改配置文件
修改/usr/local/solr/server/solr/testcore/conf/managed-schema

# vim /usr/local/solr/server/solr/testcore/conf/managed-schema

添加下面内容。
排版:Esc 退出编辑状态下:gg=G

<field name="myfield" type="text_ik" indexed="true" stored="true" />
    <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>

1.3重启

# cd /usr/local/solr/bin
# ./solr stop -all
# ./solr start -force

1.4验证
可以在可视化管理界面中找到myfield属性进行验证。
Solr框架 01 Solr框架简介,安装,配置(Analysis,Dataimport)
2managed-schema配置说明
2.1 <fieldType/>
表示定义一个属性类型。在Solr中属性类型都是自定义的。在上面配置中name="text_ik"为自定义类型。当某个属性取值为text_ik时IK Analyzer才能生效。

2.2<field/>
表示向Document中添加一个属性。
常用属性:
name: 属性名
type:属性类型。所有类型都是solr使用<fieldType>配置的
indexed: 是否建立索引
stored: solr是否把该属性值响应给搜索用户。
required:该属性是否是必须的。默认id是必须的。
multiValued:如果为true,表示该属性为复合属性,此属性中包含了多个其他的
属性。常用在多个列作为搜索条件时,把这些列定义定义成一个新的复合属性,通过搜索一个复合属性就可以实现搜索多个列。当设置为true时与<copyField source="" dest=""/>结合使用

2.3<uniqueKey>
唯一主键,Solr中默认定义id属性为唯一主键。ID的值是不允许重复的。

2.4<dynamicField>
名称中允许*进行通配。代表满足特定名称要求的一组属性。

七、Dataimport(数据库中的数据导入)
可以使用Solr自带的Dataimport功能把数据库中数据快速导入到solr中.
必须保证managed-schema和数据库中表的列对应。
1修改配置文件
修改solrconfig.xml,添加下面内容

 <!-- 配置数据导入的处理器 -->
  <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
    <lst name="defaults">
	  <!--  加载data-config.xml  -->
      <str name="config">data-config.xml</str>
     </lst>
  </requestHandler>

2.新建data-config.xml
和solrconfig.xml同一目录下新建data-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<dataConfig>
        <dataSource type="JdbcDataSource"   
                driver="com.mysql.cj.jdbc.Driver"   
                url="jdbc:mysql://192.168.51.241:3306/maven?serverTimezone=Asia/Shanghai"   
                user="root"   
                password="root"/>
        <document>
                <entity name="product" query="SELECT id,name,price from product">
                        <!-- 
                                                                                                                                                 实现数据库的列和索引库的字段的映射
                 column 指定数据库的列表
                 name  指定索引库的字段名字,必须和schema.xml中定义的一样
                 -->
                 <field column="id" name="id"/>
                 <field column="name" name="name"/>
<field column="price" name="price"/>
         </entity>
 </document>

</dataConfig>

3.添加jar
向solr-webapp中添加三个jar。在dist中两个还有一个数据库驱动。
Solr框架 01 Solr框架简介,安装,配置(Analysis,Dataimport)
4.操作
重启solr后,在可视化管理页面中进行数据导入。
注意:
点击导入按钮后,要记得点击刷新按钮。文章来源地址https://www.toymoban.com/news/detail-515432.html

到了这里,关于Solr框架 01 Solr框架简介,安装,配置(Analysis,Dataimport)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 搜索引擎 ElasticSearch, Solr 简介

    作者:禅与计算机程序设计艺术 搜索引擎的功能就是帮助用户快速检索到需要的信息。搜索引擎通常由两个主要组成部分:查询解析器和索引器。查询解析器负责将用户输入的查询文本转换成可以搜索的形式;而索引器则是对网页、文档或者其他信息进行索引并存储在数据库

    2024年01月19日
    浏览(40)
  • Linux centos solr8.11.2下载与安装配置建立索引(全量、增量更新)全套图解版

    目录 1.文档说明 2.下载准备2.1.Solr下载地址 2.2.ik-analyzer下载地址 3.安装配置3.1.前提准备 3.2.启动服务  3.3.停止服务 3.4.安全访问 3.5.Add Core 3.6.配置中文分词器 3.7.与MYSQL表建立索引(准备条件) 3.8.与MYSQL表建立索引(全量更新) 3.9.与MYSQL表建立索引(增量更新) 3.10.Solr建立索

    2024年02月01日
    浏览(45)
  • 【Hive 01】简介、安装部署、高级函数使用

    Hive是建立在 Hadoop上的数据仓库基础构架,它提供了一系列的工具,可以进行数据提取、转化、加载( ETL ) Hive定义了简单的类SQL查询语言,称为HQL,它允许熟悉SQL的用户直接查询Hadoop中的数据 Hive包含SQL解析引擎,它会将SQL语句转译成MR Job,然后在Hadoop中执行 Hive的数据存储

    2024年02月16日
    浏览(34)
  • Git教程学习:01 Git简介与安装

    1.1 什么是版本控制系统? 版本控制系统 (Version Control System,简称VCS),是一种记录一个或若干文件内容变化,以便将来查询特定版本修订情况的系统。版本控制系统不仅可以应用于软件源代码的文本文件,而且可以对任何类型的文件进行版本控制。 有了版本控制系统,我们可

    2024年01月22日
    浏览(36)
  • Solr框架 02.Solr操作(document操作和query查询)

    菜单项目Documents使用办法,document操作是对数据库的。 其中的document选项: 以XML格式举例 1新增/修改 当id不存在时新增,当id存在修改。 2删除 2.1根据主键删除 2.2根据条件删除 菜单项目query查询使用办法 1查询全部 只要在q参数中写入*:*既是搜索全部数据。 2条件查询 在q参数

    2024年02月12日
    浏览(41)
  • Apache Solr搜索引擎开发框架

    为什么要学习搜索引擎开发框架 常见的搜索引擎框架: 1.Solr 2.ElasticSearch 搭建ELK环境(ElasticSearch+Logback+Kabana)实现日志系统的搭建 Solr是基于Apache Lucene构建的流行,快速,开源的企业搜索平台。 Solr具有高可靠性,可扩展性和容错性,可提供分布式索引,复制和负载均衡查询

    2024年02月05日
    浏览(42)
  • Elastic Stack 环境配置与框架简介

    目录 简介 什么是Elastic Stack Elasticasearch Logstash Kibana Beats 框架图 下载 配置 一、安装java环境 启动 Elasticsearch Kibana FileBeat Logstash 测验 Elastic Stack 缩写为elk,它由三个软件组成: Elasticsearch 、 Logstash 、 Kibana ,因此缩写为elk,随着版本的变化,添加了一个新软件 Beats ,因此其全

    2024年02月12日
    浏览(47)
  • Solr框架 03 使用SolrJ在项目中运用solr,结果和在web界面操作document一样

    01.java的springboot项目中去用solr框架,导入依赖 1新增/修改实现 2删除实现 3查询实现

    2024年02月12日
    浏览(36)
  • 框架漏洞-CVE复现-Apache Shiro+Apache Solr

    什么是框架?        就是别人写好包装起来的一套工具,把你原先必须要写的,必须要做的一些复杂的东西都写好了放在那里,你只要调用他的方法,就可以实现一些本来要费好大劲的功能。          如果网站的功能是采用框架开发的,那么挖掘功能的漏洞就相当于

    2024年02月16日
    浏览(38)
  • 框架安全-CVE 复现&Apache Shiro&Apache Solr漏洞复现

    中间件及框架列表: IIS,Apache,Nginx,Tomcat,Docker,K8s,Weblogic,JBoos,WebSphere,Jenkins ,GlassFish,Jetty,Jira,Struts2,Laravel,Solr,Shiro,Thinkphp,Spring,Flask,jQuery 等 1、开发框架-PHP-Laravel-Thinkphp 2、开发框架-Javaweb-St2-Spring 3、开发框架-Python-django-Flask 4、开发框架-Javascript-Nod

    2024年02月05日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包