目录
什么是solr
说法一:solr是apache下的一个全文检索引擎系统, 本身就是一个war包, 一个做好的项目, 可以放入tomcat中直接运行使用.底层使用lucene编写
说法二: Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务。Solr可以独立运行在Jetty、Tomcat等这些Servlet容器中。
使用Solr 进行创建索引和搜索索引的实现方法很简单,如下:
- 创建索引:客户端(可以是浏览器可以是Java程序)用 POST 方法向 Solr 服务器发送一个描述 Field 及其内容的 XML 文档,Solr服务器根据xml文档添加、删除、更新索引 。
- 搜索索引:客户端(可以是浏览器可以是Java程序)用 GET方法向 Solr 服务器发送请求,然后对 Solr服务器返回Xml、json等格式的查询结果进行解析。Solr不提供构建页面UI的功能。Solr提供了一个管理界面,通过管理界面可以查询Solr的配置和运行情况。
Solr是一个可以独立运行的搜索服务器,使用solr进行全文检索服务的话,只需要通过http请求访问该服务器即可。
Solr和Lucene的区别
Lucene是一个开放源代码的全文检索引擎工具包,它不是一个完整的全文检索应用。Lucene仅提供了完整的查询引擎和索引引擎,目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者以Lucene为基础构建全文检索应用。
Solr的目标是打造一款企业级的搜索引擎系统,它是基于Lucene一个搜索引擎服务,可以独立运行,通过Solr可以非常快速的构建企业的搜索引擎,通过Solr也可以高效的完成站内搜索功能。
solr的作用
由于lucene代码结构比较复杂, 所以在lucene基础之上封装了, 推出了solr, solr操作简单, 直接部署到tomcat中就
可以运行使用. 我们在项目中使用solr的客户端工具包叫做solrj, 将solrj的jar包放入我们项目, 我们就可以调用solrj
的api, 远程给solr服务器发送命令, 来完成对索引库的操作(增删改查).
和solr同类型技术
elasticSearch
底层也是使用lucene编写, 它操作要比solr复杂, 速度比solr跟快.
为何要使用全文检索技术
查询速度快, 并且是从索引库中查询, 给数据库也降低了并发访问压力