搜索引擎solr的使用方法


这篇文章将为大家详细讲解有关搜索引擎solr的使用方法,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、下载、安装:1. 下载地址:https://lucene.apache.org/solr/到官网点击Download下载2. 下载后解压,如下图二、运行 (单机)1. 运行win命令窗口(cmd)2. 在solr的bin目录下执行启动命令 solr start,solr应用服务器默认端口为8983,如果想指定端口号启动可以加参数–p例 如:solr start –p 8888启动成功 在浏览器输入http://localhost:8983/solr打开,如下图:2. solr常用命令:solr start –p 端口号 单机版启动solr服务solr restart –p 端口号 重启solr服务 (注意:使用重启命令必须带有端口号)solr stop –p 端口号关闭solr服务solr create –c name 创建一个core实 香港云主机例(core概念后面介绍)3. 注意点:在启动的时候如果打印java异常堆栈log4j2.xml 文件名、目录名或卷标语法不正确,原因: log4j的bug, solr.cmd 批处理没弄好。如下图这个错不影响使用,可以忽略。也可以将 solr-7.4.0/bin/solr.cmd文件里面的所有file: 改成file:/// 就行了三、创建一个core实例1. core简介:简单说core就是solr的一个实例,一个solr服务下可以有多个core,每个core下都有自己的索引库和与之相应的配置文件,所以在操作solr创建索引之前要创建一个core,因为索引都存在core下面。2. 创建core有2中方式,一种是命令 (solr create-c 创建的名称),创建成功后会在 D:solr-7.4.0serversolr 目录下出现你创建的core文件夹,如下图:还有一种是在solr管理页面上创建,在先要在D:softsolr-7.4.0serversolr 目下创建文件夹并命名为你要创建core的名称,然后到D:solr-7.4.0exampleexample-DIHsolrdb 目录下将 conf文件夹复制到你的core,最后到solr管理页面上创建core,如下图:创建成功,如下图:四、配置managed-schema1.managed-schema简介managed-schema是用来告诉solr如何建立索引的,他的配置围绕着一个managed-schema配置文件,这个配置文件决定着solr如何建立索引,每个字段的数据类型,分词方式等,老版本的schema配置文件的名字叫做schema.xml他的配置方式就是手工编辑,但是现在新版本的schema配置文件的名字叫做managed-schema,他的配置方式不再是用手工编辑而是使用schemaAPI来配置,官方给出的解释是使用schemaAPI修改managed-schema内容后不需要重新加载core或者重启solr更适合在生产环境下维护,如果使用手工编辑的方式更改配置不进行重加载core有可能会造成配置丢失,managed-schema所在目录为D:solr-7.4.0serversolrtest1conf,如下图:2.managed-schema主要成员fieldType:为field定义类型,最主要作用是定义分词器,分词器决定着如何从文档中检索关键字,multiValued属性为true时支持该类型为数组结构。analyzer:他是fieldType下的子元素,这就是传说中的分词器,他由一组tokenizer和filter组成。field:他是创建索引用的字段,如果想要这个字段生成索引需要配置他的indexed属性为true,stored属性为true表示存储该索引。如下图所示每个field都要引用一种fieldType由type属性定义,multiValued属性为true该字段为数组,数组中每个下标的值solr都会创建索引关于更多managed-schema的介绍请参考http://lucene.apache.org/solr/guide/7_4/documents-fields-and-schema-design.html常用的数据类型基本都有,都在managed-schema文件中,搜索fieldType就可以找到注:一般主键 ID 不用手写定义 field 标签,会自动生成,如果手动定义了在运行的时候回报错。由于managed-schema是复制过来的 最好将文件中定义的field 标签能删除的都删,避免和自己定义的field 冲突,定义id的field客源不删除,如下图:3.Schema API:Schema API其实就是用post请求向solr服务器发送携带json参数的请求,所有操作内容都封装在json中,如果是linux系统直接使用curl工具,如果是windows系统推荐使用Postman这里以添加一个field为例,下面列出其他API:add-field: add a new field with parameters youprovide.delete-field: delete a field.replace-field: replace an existing field withone that is differently configured.观看更多API内容请参考http://lucene.apache.org/solr/guide/7_4/schema-api.html
四、DIH导入索引数据1.DIH简介:DIH全称是Data Import Handler 数据导入处理器,顾名思义这是向solr中导入数据的,我们的solr目的就是为了能让我们的应用程序更快的查询出用户想要的数据,而数据存储在应用中的各种地方入xml、pdf、关系数据库中,那么solr首先就要能够获取这些数据并在这些数据中建立索引来达成快速搜索的目的,这里就列举我们最常用的从关系型数据库中向solr导入索引数据。
2.创建DIH在自己创建的core目录下conf目录下(比如:D:solr-7.4.0serversolrtest1conf)有个 db-data-config.xml 文件( 如何目录下没有改文件可以到D:solr-7.4.0exampleexample-DIHsolrdbconf 目下拷贝到自己的目录下),用于连接数据库抽取数据,如下图:有超文本编辑器打开db-data-config.xml开始编辑,如下图:entity的默认属性:name(必需的):name是唯一的,用以标识entityprocessor:只有当datasource不是RDBMS时才是必需的。默认值是SqlEntityProcessortransformer:转换器将会被应用到这个entity上,详情请浏览transformer部分。pk:entity的主键,它是可选的,但使用“增量导入”的时候是必需。它跟schema.xml中定义的uniqueKey没有必然的联系,但它们可以相同。rootEntity:默认情况下,document元素下就是根实体了,如果没有根实体的话,直接在实体下面的实体将会被看做跟实体。对于根实体对应的数据库中返回的数据的每一行,solr都将生成一个document。SqlEntityProcessor的属性:query(required) :是获取全部数据的SQLdeltaQuery: 只在“增量导入”中使用,只获取增量pk的SQLparentDeltaQuery:只在“增量导入”中使用,只获取父Entity的pk的SQLdeletedPkQuery:只在“增量导入”中使用,获取当前Entity被删除的pkdeltaImportQuery:(只在“增量导入”中使用) . 如果这个存在,那么它将会在“增量导入”中导入phase时代替query产生作用。Full Import工作原理
执行本Entity的Query,获取所有数据;
针对每个行数据Row,获取pk,组装子Entity的Query;
执行子Entity的Query,获取子Entity的数据。Delta Import工作原理
查找子Entity,直到没有为止;
执行Entity的deltaQuery,获取变化数据的pk;
合并子Entity parentDeltaQuery得到的pk;
针对每一个pk Row,组装父Entity的parentDeltaQuery;
执行parentDeltaQuery,获取父Entity的pk;
执行deltaImportQuery,获取自身的数据;
如果没有deltaImportQuery,就组装Query限制
子Entity的query必须引用父Entity的pk
子Entity的parentDeltaQuery必须引用自己的pk
子Entity的parentDeltaQuery必须返回父Entity的pk
deltaImportQuery引用的必须是自己的pk在solrconfig.xml(目录 D:solr-7.4.0serversolrtest1conf)文件最下面增加配置:如下图:在创建的core目录下(D:solr-7.4.0serversolrtest1)创建 lib 文件夹,将数据库驱动jar包复制进去。在D:softsolr-7.4.0dist文件夹下的solr-dataimporthandler-4.5.1.jar和solr-dataimporthandler-extras-4.5.1.jar也复制进去(这2个jar不一定需要复制,跟进启动后看日志是否报 没有这个类 org.apache.solr.handler.dataimport.DataImportHandler,报了就复制进去)之后重启solr,如下图:重启成功之后打开solr管理,选择创建的core并抽取数据,可以在D:solr-7.4.0serverlogs下查询日志记录,如下图:执行成功之后,查看结果,如下图:删除solr数据,如下图:也可以使用 访问url删除根据ID删除http://localhost:8080/solr/update/?stream.body=id值&stream.contentType=text/xml;charset=utf-8&commit=true根据查询条件查询http://localhost:8080/solr/update/?stream.body=参数&stream.contentType=text/xml;charset=utf-8&commit=true五、Solr中启用定时器自动更新下载solr-dataimport-scheduler.jar 将其复制到D:solr-7.4.0serversolr-webappwebappWEB-INFlib 下,如下图:找到web.xml (D:solr-7.4.0serversolr-webappwebappWEB-INF)在第一个servlet标签添加如下图:在D:solr-7.4.0serversolr目录下成交conf文件夹,之后再conf下创建dataimport.properties文件,如下图:编辑dataimport.properties文件在重启之后dataimport.properties文件注释会都没有了,如下图:之后重新启动solr,之后定时就启用了。六、集成到项目中maven引入jar,注:如果有特殊需要需要引入httpclient 那要注意httpclient的版本与solr的版本兼容,solr7.4的httpclient不得低于4.5.3spring-solr.xml在spring的ApplicationContext.xml增加在Java中简单使用关于搜索引擎solr的使用方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

相关推荐: 怎么使用CSS3实现折角效果

这篇文章主要介绍“怎么使用CSS3实现折角效果”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用CSS3实现折角效果”文章能帮助大家解决问题。先来看看静 香港云主机态的效果图实例代码关于“怎么使用CSS3实现折角效…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 08/08 16:07
Next 08/08 16:09

相关推荐