当前位置:首页 > 后端开发 > 什么是Solr,它能为我们解决什么问题,怎么用?

什么是Solr,它能为我们解决什么问题,怎么用?

7个月前 (05-27)44

 

一.  什么是Solr?

其实我们大多数人都使用过Solr,也许你不会相信我说的这句话,但是事实却是如此啊 ! 每当你想买自己喜欢的东东时,你可能会打开某宝或者某东,像这样一搜,就能搜到很多东西,你知道你看到的这些数据都来自哪儿吗?百度一下你就知道!这些数据来自哪儿吗?等你了解完Solr后你就知道答案啦!

什么是Solr,它能为我们解决什么问题,怎么用? _ Java侠

什么是Solr,它能为我们解决什么问题,怎么用? _ Java侠

 

现实生活中我们都知道大多数网站或应用都必须具有某种搜索功能,问题是搜索功能往往是巨大的资源消耗并且它们由于沉重的数据库加载而拖垮你的应用的性能。

这就是为什么转移负载到一个外部的搜索服务器是一个不错的主意,Apache Solr是一个流行的开源搜索服务器,它通过使用类似REST的HTTP API,这就确保你能从几乎任何编程语言来使用solr

Solr是一个开源搜索平台,用于构建搜索应用程序。 它建立在Lucene(全文搜索引擎)之上。 Solr是企业级的,快速的和高度可扩展的。 使用Solr构建的应用程序非常复杂,可提供高性能。

为了在CNET网络的公司网站上添加搜索功能,Yonik Seely于2004年创建了Solr。并在2006年1月,它成为Apache软件基金会下的一个开源项目。并于2016年发布最新版本Solr 6.0,支持并行SQL查询的执行。

Solr可以和Hadoop一起使用。由于Hadoop处理大量数据,Solr帮助我们从这么大的源中找到所需的信息。不仅限于搜索,Solr也可以用于存储目的。像其他NoSQL数据库一样,它是一种非关系数据存储和处理技术。

总之,Solr是一个可扩展的,可部署,搜索/存储引擎,优化搜索大量以文本为中心的数据。

二. 那有人可能会说搜索这玩意儿数据库本身就支持啊,干嘛还要搞个什么solr?其实正如上面solr的介绍中所说的那样.

2.1 solr本身也可以看成数据库,(no sql类型),但它比数据库搜索速度更快,所以在项目中我们一般把搜搜的部分交给solr,就像我们在京东首页所看到的商品信息,并不是来自数据库,而是来源于sorl的索引库

2.1 数据库本身不能实现分词效果,而只能使用模糊查询,但是模糊查询非常低效,查询速度比较慢,由于在实际生活中,一般搜索是用的比较多的,这样数据库压力自然就很大,所以我们就让供专业的solr来做搜索功能

三.如果我们想要使用solr那么首先我们得安装它

1:安装 Tomcat,解压缩即可。

2:解压 solr,官网 http://lucene.apache.org/solr/

3:把 solr 下的dist目录solr-4.10.3.war(我用的是这个版本)部署到 Tomcat\webapps下(去掉版本号)。

4:解压缩 war 包,可以启动 Tomcat解压,可以用压缩软件解压

5:把solr下example/lib/ext 目录下的所有的 jar 包,添加到 solr 的工程中(\WEB-INF\lib目录下)。

6:创建一个 solrhome 。solr 下的/example/solr 目录就是一个 solrhome。复制此目录到某个盘改名为solrhome 

什么是Solr,它能为我们解决什么问题,怎么用? _ Java侠

什么是Solr,它能为我们解决什么问题,怎么用? _ Java侠

7:关联 solr 及 solrhome。需要修改 solr 工程的 web.xml 文件。

什么是Solr,它能为我们解决什么问题,怎么用? _ Java侠

 什么是Solr,它能为我们解决什么问题,怎么用? _ Java侠

8:启动 Tomcat,看到下面这个界面说明solr安装成功啦

http://IP:8080/solr/

什么是Solr,它能为我们解决什么问题,怎么用? _ Java侠

但是由于这个东西是外国人写的,再加上博大精深的中华文化,solr对于中文的分词效果非常糟糕,不能很好的分词,就不能建立一个很好的索引库,也就不能提供好的搜索服务.于是我们中国人基于solr自己写了个分词器,终于能够愉快的使用solr了;

什么是Solr,它能为我们解决什么问题,怎么用? _ Java侠

而当我们使用了中文分词器后效果变成这样

什么是Solr,它能为我们解决什么问题,怎么用? _ Java侠

下面我们就来说说怎样使用这个中午让你分词器吧(当然有多种啦,目前最受欢迎的就是IK Analyzer 啦)

介绍:

IK Analyzer 是一个开源的,基亍 java 语言开发的轻量级的中文分词工具包。从 2006年 12 月推出 1.0 版开始, IKAnalyzer 已经推出了 4 个大版本。最初,它是以开源项目Luence 为应用主体的,结合词典分词和文法分析算法的中文分词组件。从 3.0 版本开始,IK 发展为面向 Java 的公用分词组件,独立亍 Lucene 项目,同时提供了对 Lucene 的默认优化实现。在 2012 版本中,IK 实现了简单的分词歧义排除算法,标志着 IK 分词器从单纯的词典分词向模拟语义分词衍化。

 

使用步骤:

1、下载IKAnalyzer,解压后把IKAnalyzer2012FF_u1.jar 添加到 solr 工程的 lib 目录下

官网:http://code.google.com/p/ik-analyzer/downloads/list,打不开就到网上找一个

什么是Solr,它能为我们解决什么问题,怎么用? _ Java侠

2、创建WEB-INF/classes文件夹  把扩展词典、停用词词典、配置文件放到 solr 工程的 WEB-INF/classes 目录下。

什么是Solr,它能为我们解决什么问题,怎么用? _ Java侠

什么是Solr,它能为我们解决什么问题,怎么用? _ Java侠

3、修改 Solrhome 的 schema.xml 文件,配置一个 FieldType,使用 IKAnalyzer

什么是Solr,它能为我们解决什么问题,怎么用? _ Java侠

什么是Solr,它能为我们解决什么问题,怎么用? _ Java侠

<fieldType name="text_ik" class="solr.TextField">

     <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>

</fieldType>

重启tomcat,如图提示操作,看到下面的效果说明成功

什么是Solr,它能为我们解决什么问题,怎么用? _ Java侠

当然solr对于我们来说最终必须要能够用到项目中去,才能发挥它真正的价值,后面我将会写一遍solr项目实战的东东,敬请期待... 

作者:飘…
来源链接:https://blog.csdn.net/luo609630199/article/details/82494708/

标签: Solr

“什么是Solr,它能为我们解决什么问题,怎么用?” 的相关文章

Linux安装Tomcat-Nginx-FastDFS-Redis-Solr-集群——【第九集-补充-之安装iptables】

Linux安装Tomcat-Nginx-FastDFS-Redis-Solr-集群——【第九集-补充-之安装iptables】

  1,安装完了jdk,tomcat,启动tomcat的bin/startup.sh后,发现在浏览器输入公网ip地址和tomcat的默认(server.xml)中的端口p...

solr 7.2.1 单机及伪集群启动

solr 7.2.1 单机及伪集群启动

1、solr的下载: 下载地址:solr官网:http://lucene.apache.org/solr进入官网点击download或者点击链接https://lucene.apa...

dubbo 图片服务器(FastDFS) redis solr  ActiveMQ等简单配置使用

dubbo 图片服务器(FastDFS) redis solr ActiveMQ等简单配置使用

一、dubbo 项目基于soa的架构,表现层和服务层是不同的工程。所以要实现商品列表查询需要两个系统之间进行通信。 1.1如何实现远程通信? 1、Webservice:...

Solr检索配置

使用Solr做全文检索的时候,需要接触到solr的配置文件(Schema.xml/Managed-schema.xml) 1.设置中文分词器(...

Solr系统架构

Solr系统架构

  Solr系统架构: Solr概述: 什么是Solr: Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucen...

solr配置索引库启动tomcat报错记录及解决

solr配置索引库启动tomcat报错记录及解决

  [root@localhost logs]# cd /usr/local/solr/tomcat8-solr/logs [root@localhost l...

solr配置自动增量更新

<span style="font-family: inherit; font-size: 18px; font-style: inherit; background-...

solr服务搭建

solr服务搭建

一。安装solr服务 1. 安装jdk,安装tomcat. 2. 解压solr压缩包 3. 将solr下的dist/solr.war部署到to...

安装solr + IK分词器

安装solr + IK分词器

技术概述,描述这个技术是做什么 在我们开发一个搜索功能的时候,如果采用SQL 语句来查找 数据,需要使用 like % + 字符 + % 的情况下,会导致索引失效 会导致索引失效,...

说一说solr在tomcat,jetty上的运行和安装优缺点

根据关键字只搜索text域的内容就相当于搜索title和content,将title和content复制到text中,如下:   本文是我从别的文章中组合而成的,结合自...