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 特性
1
⾼级的全⽂搜索功能
2
专为⾼通量的⽹络流量进⾏优化
3
基于开放接⼝(XML、HTTP)的标准
4
综合的 html 管理界⾯
5
可伸缩性 —— 能够有效地复制到另外⼀个 Solr 服务器
6
使⽤ XML 配置达到灵活性和适配性
7
可扩展的插件体系
Solr 与 Lucene 的关系
Solr 是 Lucene ⾯向企业搜索应⽤的扩展Solr 与 Lucene 并不是竞争关系,恰恰相反,Solr 依存于 Lucene,因为 Solr 的底 层核⼼技术是使⽤ Lucene 来实现的。
Solr 和 Lucene 的本质区别
1
搜索服务器
2
企业级
3
和管理 Lucene 本质上是搜索库,不是独⽴的应⽤程序,⽽ Solr 是独⽴的应⽤
程序。
4
Lucene 专注于搜索底层的建设,⽽ Solr 转轴企业应⽤
5
Lucene 不负责⽀撑搜索服务器所必须的管理,⽽ Solr 负责。
搭建 Solr
下载 Solr
http://mirrors.shu.edu.cn/apache/lucene/solr/7.3.0/
启动 Solr
在 bin 路径下执⾏命令
现在可以在 http://localhost:8983/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 根路径执⾏以下命令
$ 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/
该命令会将 example/exampledocs 下的⽂件添加到solr中(除了post.jar和test_utf8.sh)
Solr 基础
因为 Solr 包装并扩展了 Lucene,所以它们使⽤很多相同的术语,更重要的是,Solr创建的索引与 Lucene 搜索引擎库完全兼容。通过对 Solr 进⾏适当的配置,某些情况下可能需要进⾏编码,Solr 可以阅读和使⽤构建到其他 Lucene 应⽤程序中的索引。在 Solr 和 Lucene 中,使⽤⼀个或多个 Document 来构建索引。Document 包括⼀个或多个 Field。Field 包括名称、内容以及告诉 Solr 如何处理内容的元数据。
例如,Field 可以包含字符串、数字、布尔值或者⽇期,只需要在 Solr 的配置 ⽂件中进⾏相应的配置即可。Field 可以使⽤⼤量的选项来描述,这些选项告诉 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.
我们来对⼀个⽂章定义⼀下它的⽂章标题 name 和⽂章内容 content 和⽂章发布时间 createTim
定义的json格式如下
以POST⽅式提交到 http://localhost:8983/solr/articles/schema :
建⽴索引并查询
Solr ⼯具类
使⽤ SolrJ 进⾏操作
SolrJ ⼯具类:
修改 Article 类
使⽤⼯具类插⼊⼏条数据
⾸先准备数据:
可以看到⽂档成功插⼊:
可以看到查询结果:
以上是关于Solr简述及应用的主要内容,如果未能解决你的问题,请参考以下文章