Solr简述及应用

Posted 程序员食堂

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Solr简述及应用相关的知识,希望对你有一定的参考价值。

新卓越前端/Java暑假班火热开启,给自己一个拿年薪20w的机会


西安邮电大学长安校区

Tel:151-9186-5006 地点:西区图书馆A104


西安科技大学临潼校区

Tel:158-9142-6016 地点:旧图书馆后门信息网络中心一楼



 Solr 是什么

Solr是⼀种开源的、基于 Lucene 的搜索服务器,易于加⼊到 Web 应⽤程序中。Solr 提供了层⾯搜索(统计)、命中提醒显示并⽀持多种输出格式(包括XML/XSLT 和 JSON 等格式)。它易于安装和配置,并且附带了⼀个基于 HTTP 的管理界⾯,可以使⽤ Solr 优秀的基本搜索功能,也可以对它进⾏扩展从⽽满⾜企业的需要。

Solr简述及应用

Solr 特性


1

⾼级的全⽂搜索功能


2

专为⾼通量的⽹络流量进⾏优化


3

基于开放接⼝(XML、HTTP)的标准


4

综合的 html 管理界⾯



5

可伸缩性 —— 能够有效地复制到另外⼀个 Solr 服务器


6

使⽤ XML 配置达到灵活性和适配性


7

可扩展的插件体系


Solr 与 Lucene 的关系

Solr简述及应用

Solr 是 Lucene ⾯向企业搜索应⽤的扩展Solr 与 Lucene 并不是竞争关系,恰恰相反,Solr 依存于 Lucene,因为 Solr 的底  层核⼼技术是使⽤ Lucene 来实现的。

Solr简述及应用
Solr简述及应用

Solr 和 Lucene 的本质区别


1

搜索服务器


2

企业级


3


和管理 Lucene 本质上是搜索库,不是独⽴的应⽤程序,⽽ Solr 是独⽴的应⽤

程序。


4

Lucene 专注于搜索底层的建设,⽽ Solr 转轴企业应⽤


5

Lucene 不负责⽀撑搜索服务器所必须的管理,⽽ Solr 负责。

Solr简述及应用


搭建 Solr


下载 Solr

http://mirrors.shu.edu.cn/apache/lucene/solr/7.3.0/



启动 Solr

在 bin 路径下执⾏命令


Solr简述及应用
Solr简述及应用

现在可以在 http://localhost:8983/solr 访问控制台

Solr简述及应用
Solr简述及应用


Solr 命令总结

01

查看帮助

./solr -help


02

启动

./solr start 启动单机版

./solr start -f 前台启动

./solr start -p 8984 指定端⼝启动

./solr start -cloud 启动分布式版本

./solr start -e cloud -noprompt -e 表示要启动⼀个现有的例⼦

,例⼦名称是 cloud,cloud 这个例⼦是以 solr cloud ⽅式启动的

./solr restart 重启项⽬


03

create

./ solr create -c abc abc 是 core(单机版) 或 collection(cloud版) ,abc ⽬录的位置创建在 solr.solr.home(默认在 solr/server/solr) ⽬录下


04

post提交数据生成索引

./post -c abc docs/ 向名为 abc 的 core 或 collection 提交数据  ,数据源在 docs/ 路径下


05

删除

./solr delete -c abc 删除名为 abc 的 core 或 collection


06

删除索引

./solr -c abc -d "/home/matthewi/software/solr-5.4.1/docs/solr-morphlines-core/allclasses-noframe.html</delete>" 重新执⾏上⾯的搜索可以看到搜索结果的数量少了⼀条:numFound列./post -c abc -d "*:*" 删除所有数据


07

停⽌solr

./solr stop -all


08

状态

./solr status


索引数据

在 solr 根路径执⾏以下命令

Solr简述及应用

$ java -classpath /solr-5.4.0/dist/solr-core-5.4.0.jar -Dauto=yes -  Dc=gettingstarted -Ddata=files org.apache.solr.util.SimplePostTool  example/exampledocs/

Solr简述及应用

该命令会将 example/exampledocs 下的⽂件添加到solr中(除了post.jar和test_utf8.sh)


Solr 基础

因为 Solr 包装并扩展了 Lucene,所以它们使⽤很多相同的术语,更重要的是,Solr创建的索引与 Lucene 搜索引擎库完全兼容。通过对 Solr 进⾏适当的配置,某些情况下可能需要进⾏编码,Solr 可以阅读和使⽤构建到其他 Lucene 应⽤程序中的索引。在 Solr 和 Lucene 中,使⽤⼀个或多个 Document 来构建索引。Document 包括⼀个或多个 Field。Field 包括名称、内容以及告诉 Solr 如何处理内容的元数据。

Solr简述及应用

例如,Field 可以包含字符串、数字、布尔值或者⽇期,只需要在 Solr 的配置  ⽂件中进⾏相应的配置即可。Field 可以使⽤⼤量的选项来描述,这些选项告诉  Solr 在索引和搜索期间如何处理内容。

Solr简述及应用
Solr简述及应用
Solr简述及应用

模式配置 Schema.xml

schema.xml 这个配置⽂件可以在下载的 Solr  包的安装解压目录solr/example/solr/collcetion/conf 中找到,它就是 Solr 模式关联的⽂件。


定义字段类型

跟数据库⼀样,solr也需要定义字段类型,这⾥我们的检索服务需要⽀持中⽂分词,所以字段类型都是第三步我们定义的中⽂分词类型。

Dynamic field definitions allow using convention over configuration for fieldsvia the specification of patterns to match field names.

Solr简述及应用

我们来对⼀个⽂章定义⼀下它的⽂章标题 name 和⽂章内容 content 和⽂章发布时间 createTim

Solr简述及应用

定义的json格式如下

Solr简述及应用

以POST⽅式提交到 http://localhost:8983/solr/articles/schema :

Solr简述及应用
Solr简述及应用


Solr简述及应用


建⽴索引并查询

Solr ⼯具类


使⽤ SolrJ 进⾏操作

Solr简述及应用

SolrJ ⼯具类:

Solr简述及应用
Solr简述及应用
Solr简述及应用

修改 Article 类



Solr简述及应用

使⽤⼯具类插⼊⼏条数据



⾸先准备数据:

Solr简述及应用
Solr简述及应用
Solr简述及应用

可以看到⽂档成功插⼊:

Solr简述及应用

可以看到查询结果:

Solr简述及应用


以上是关于Solr简述及应用的主要内容,如果未能解决你的问题,请参考以下文章

技术秀Solr搜索引擎及应用: information retrieval

Solr&ElasticSearch原理及应用讨论

#徐员外#Solr服务器集群及ActiveMQ应用实战

RSA算法特点及应用简述

布隆过滤器简述及应用

技术积累-商业银行数据仓库架构及BI应用简述