热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Solr的安装与配置Windows版

1、solr简介Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务

1、solr简介

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

2、倒排索引

有的人会疑惑,搜索通过数据库也能直接查到为什么还要solr这类搜索引擎。例如我现在要搜索"solr"相关的内容,通过数据库模糊匹配%solr%可以查到,数量少的话查询速度还挺可观,如果数据量到达百万级千万级甚至更多,可能查出来得猴年马月了。

而solr用的倒排索引可以解决这一问题。

什么是倒排索引,先说下正排索引。

假如我有部分数据

文档id文档内容
1solr的使用以及如何在java中使用solr实现搜索功能
2solr是一个独立的企业级搜索应用服务器
3倒排索引和正排索引
4搜索引擎

 

 

 

 

假如我要搜索solr,通过正排索引就是文档id作为索引,找到内容包含solr的文档。文档数量多了之后极大增加的搜索时间。

而倒排索引是将文档内容分词后建立索引。

单词内容文档id
solr1,2
java1
搜索1,2,4
索引3
服务器2

 

 

 

 

 

此时我要搜索solr时直接通过单词内容索引,找到文档id列表,在按照文档出现的频次等内容计算权重然后返回。

3、solr在windows下的安装与配置

3.1、solr的下载和安装

前往官网下载solr,我下载的版本是solr7.7.2 http://lucene.apache.org/solr/

解压后进入cmd进入bin目录执行 solr start命令,命令行显示如下,启动成功,默认端口8983,也可通过-p指定端口启动

此时可以打开solr管理页面,浏览器输入http://localhost:8983/solr

 

3.2 solr core的创建

core就是solr的一个实例,一个solr服务下可以有多个core,每个core下都有自己的索引库和与之相应的配置文件。命令行和管理页面都可以创建core,在这我通过命令行创建。

在命令行输入solr create -c "自定义core_name",如图创建成功。

3.3导入数据

  • 配置数据源

在mysql中添加表和数据,在这里我新增了表city,并添加了一些城市的数据。

 

在\server\solr\test_core(自定义的core名)\conf下新建dataConfig.xml (名字可以自己取)。

标签简介:

dataSource:数据库连接的基本配置

entity:数据库中的表

field:表中字段与下文中配置的schema字段一致。


  

  • 配置schema

schema是用来告诉solr如何建立索引的,他的配置围绕着一个schema配置文件,这个配置文件决定着solr如何建立索引,每个字段的数据类型,分词方式等,新版本的schema配置文件的名字叫做managed-schema。

里面标签简介:

fieldType:为field定义类型,最主要作用是定义分词器,分词器决定着如何从文档中检索关键字。

analyzer:他是fieldType下的子元素,分词器。

filed:创建索引用的字段,如果想要这个字段生成索引需要配置他的indexed属性为true,stored属性为true表示存储该索引。

在\server\solr\test_core(自定义的core名)\conf下打开managed-schema

  • 配置数据导入处理器

 在\server\solr\test_core(自定义的core名)\conf下打开solrconfig.xml。添加以下内容,dataConfig,xml即为上文中配置的数据源。

dataConfig.xml

 

  • 导入jar包

  数据库驱动的jar:mysql-connector-java-8.0.11.jar (注意这里jar包的版本要根据你数据库的版本来我的数据库是mysql8.0)

  data-import的jar:在根目录\dist下有这两个包solr-dataimporthandler-7.7.2.jar和solr-dataimporthandler-extras-7.7.2.jar。

  复制这三个jar包到\server\solr-webapp\webapp\WEB-INF\lib下

  • 导入数据

  以上配置结束后重新启动solr(命令行输入solr restart -p 8983)。登录solr管理页面http://localhost:8983/solr,可以看到选择core的时候可以选择之前创建的test_core

 选择Dataimport选项,勾选clean、commit、 debug,Entiry选择city,点击Execute

 

执行成功后可以看见右边记录数,以及response下的具体数据。

 

关于solr管理平台的其他一些功能这里暂不详述,有兴趣的同学可以自行百度。

3.4查询

 选择Query功能,可以查询数据。

3.5分词

至此基本的查询已经实现了,但还没实现分词效果。

通过分词分析器可以看出这一句话没有分词。

配置ik分词器。下载ik-analyzer-solr7-7.x.jar,传送门 放入\server\solr-webapp\webapp\WEB-INF\lib中。

然后在WEB-INF文件夹下新建一个"classes"文件,从ik-analyzer-solr7-7.x.jar中找到配置文件IKAnalyzer.cfg.xml中赋值到classes目录下。(我是从jar包解压获取的)到classes目录下。然后配置managed-schema中添加ik分词器的配置,并且把field city的类型改为ik_word这样搜索的时候才会应用分词。


重启solr,打开管理界面分词分析,可以看到一句话被分成了好几个单词。

 

查询界面用这句话查询,可以看出查到了重庆市和北京市这两个记录。

至此分词查询也告一段落,下一章会和大家一起看看在java中使用solr。

 4、相关问题Q&A


  •  Q:在Dataimport的页面下导入数据时,一直导入不成功,也看不到报错信息。

   A:勾选下列dubug选项,执行。右边会有具体报错信息,Unable to load authentication plugin 'caching_sha2_password'。

mysql-5.7版本是:default_authentication_plugin=mysql_native_password ,mysql-8.x版本是:default_authentication_plugin=caching_sha2_password

而mysql-connector-java-5.7.jar的版本识别不了mysql_native_password的密码规则,替换jar包为8.0.11即可。

文章出自:https://www.cnblogs.com/wdfordream/p/11352053.html


推荐阅读
  • 部署solr建立nutch索引
    2019独角兽企业重金招聘Python工程师标准接着上篇nutch1.4的部署应用,我们来部署一下solr,solr是对lucene进行了封装的企 ... [详细]
  • 一:什么是solrSolr是apache下的一个开源项目,使用Java基于lucene开发的全文搜索服务器;Lucene是一个开放源代 ... [详细]
  • php更新数据库字段的函数是,php更新数据库字段的函数是 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • 本文介绍了如何利用Struts1框架构建一个简易的四则运算计算器。通过采用DispatchAction来处理不同类型的计算请求,并使用动态Form来优化开发流程,确保代码的简洁性和可维护性。同时,系统提供了用户友好的错误提示,以增强用户体验。 ... [详细]
  • 在Java Web服务开发中,Apache CXF 和 Axis2 是两个广泛使用的框架。CXF 由于其与 Spring 框架的无缝集成能力,以及更简便的部署方式,成为了许多开发者的首选。本文将详细介绍如何使用 CXF 框架进行 Web 服务的开发,包括环境搭建、服务发布和客户端调用等关键步骤,为开发者提供一个全面的实践指南。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 本文深入解析了通过JDBC实现ActiveMQ消息持久化的机制。JDBC能够将消息可靠地存储在多种关系型数据库中,如MySQL、SQL Server、Oracle和DB2等。采用JDBC持久化方式时,数据库会自动生成三个关键表:`activemq_msgs`、`activemq_lock`和`activemq_ACKS`,分别用于存储消息数据、锁定信息和确认状态。这种机制不仅提高了消息的可靠性,还增强了系统的可扩展性和容错能力。 ... [详细]
  • 本文详细介绍了在CentOS 6.5 64位系统上使用阿里云ECS服务器搭建LAMP环境的具体步骤。首先,通过PuTTY工具实现远程连接至服务器。接着,检查当前系统的磁盘空间使用情况,确保有足够的空间进行后续操作,可使用 `df` 命令进行查看。此外,文章还涵盖了安装和配置Apache、MySQL和PHP的相关步骤,以及常见问题的解决方法,帮助用户顺利完成LAMP环境的搭建。 ... [详细]
  • 本指南详细介绍了如何在CentOS 6.6 64位系统上以root用户身份部署Tomcat 8服务器。系统环境为CentOS 6.6 64位,采用源码安装方式。所需软件为apache-tomcat-8.0.23.tar.gz,建议将软件下载至/root/opt目录。具体下载地址请参见官方资源。本指南涵盖了从环境准备到服务启动的完整步骤,适用于需要在该系统环境下搭建高性能Web应用服务器的技术人员。 ... [详细]
  • camel_使用Camel在来自不同来源的Solr中索引数据
    camelApacheSolr是建立在Lucene之上的“流行的,快速的开源企业搜索平台”。为了进行搜索(并查找结果),通常需要从不同的源(例如内容管理 ... [详细]
  • solr导入mysql_Solr导入MySQL中的数据
    一、目标将MySQL数据库中的数据导入至Solr中,并且由Solr生成中文索引,使用Solr查询信息。二、数据导入1、将solr-8.2.0dist下的 ... [详细]
  • Lucene 全文检索技术入门
    一、搜索引擎的历史萌芽:Archie、Gopher起步:Robot(网络机器人)的出现与spider(网络爬虫)发展:excite、galax ... [详细]
  • CDH5 Solr性能调优
    2019独角兽企业重金招聘Python工程师标准Solr性能调优Solr性能调优是个复杂的过程,本文旨在描述Solr在使用过程中对性能优化的注意事项。在安装完成 ... [详细]
author-avatar
woainimamamamama
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有