「这是我参与11月更文挑战的第5天,活动详情查看:2021最后一次更文挑战」。
1.Solr是什么?
Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。
2.Solr怎么来的?
Solr是apache的顶级开源项目,它是使用java开发 ,基于lucene的全文检索服务器。
3.Solr比lucene多了什么?
- lucene是什么?
Lucene是一个全文检索引擎工具包,它只是一个jar包,不能独立运行,对外提供服务。 - Solr优点
Solr是一个全文检索服务器,它可以单独运行在servlet容器,也可以单独对外提供搜索和索引功能。Solr比lucene在开发全文检索功能时,更快捷、更方便。Solr比lucene提供了更多的查询语句,而且它可扩展、可配置,同时它对lucene的性能进行了优化。
4.Solr是如何实现全文检索的呢?
- 索引流程
solr客户端(浏览器、java程序)可以向solr服务端发送POST请求,请求内容是包含Field等信息的一个xml文档,通过该文档,solr实现对索引的维护(增删改) - 搜索流程
solr客户端(浏览器、java程序)可以向solr服务端发送GET请求,solr服务器返回一个xml/json文档。
5.Solr如何下载和启动?
注意:Solr和lucene的版本是同步更新的,最新的版本是8.1.0
下载地址:mirrors.tuna.tsinghua.edu.cn/apache/luce…
下载:根据Solr的运行环境,Linux下需要下载solr-8.1.0.tgz,windows下需要下载solr-8.1.0.zip。
说明:
- src.tgz:带src表示是带源码文件的压缩包,无src是已经编译过的压缩包
- tgz:Linux相关操作系统使用的压缩包
- zip:Windows操作系统使用的压缩包
启动Solr:
solr的启动、停止、查看命令:
- 启动:bin\solr.cmd start
- 停止:bin\solr stop 或bin\solr stop -all
- 查看:bin\solr status
访问地址:http://localhost:8983/solr/#/
6.Solr性能优化
- 将所有只用于搜索的,而不需要作为结果的field的stored设置为false
- 将不需要被用于搜索的,而只是作为结果返回的field的indexed设置为false
- 删除所有不必要的copyField声明
- 为了索引字段的最小化和搜索的效率,将所有的 text fields的index都设置成field,然后使用copyField将他们都复制到一个总的 text field上,然后进行搜索。
- 为了最大化搜索效率,使用java编写的客户端与solr交互
- 在服务器端运行JVM,使用尽可能高的Log输出等级,减少日志量。
总结
经过对solr大致了解,我们知道了它支持更多格式的数据,比如JSON、XML、CSV;查询快,用于电商等查询多的应用;比较成熟,有一个更大,更成熟的用户、开发和贡献者社区。
本文转载自: 掘金