导言
说起Apache Lucene,可以说无人不知,无人不晓,但是说道Apache Solr,恐怕知道的不多。看看Apache Solr的说明:
Solr是一个基于Lucene java库的企业级搜索服务器,包含XML/HTTP,JSON API, 高亮查询结果,faceted search(不知道该如何翻译,片段式搜索),缓存,复制还有一个WEB管理界面。Solr运行在Servlet容器中。所以Solr和Lucene的本质区别有以下三点:搜索服务器,企业级和管理。Lucene本质上是搜索库,不是独立的应用程序,而Solr是。Lucene专注于搜索底层的建设,而Solr专注于企业应用。Lucene不负责支撑搜索服务所必须的管理,而Solr负责。所以说,一句话概括Solr:Solr是Lucene面向企业搜索应用的扩展。
在本篇文章中,我们先看看Solr向我们承诺了什么,或者说Solr宣称的特性们。
无废话Solr
Solr是一个拥有象WebService一样接口的独立运行的搜索服务器。你将能够通过HTTP协议以XML格式将文档放入搜索服务器(这个过程叫做索引),你能够通过HTTP协议的GET来查询搜索服务器并且得到XML格式的结果。Solr的特性包括:
- 高级的全文搜索功能
- 专为高通量的网络流量进行的优化
- 基于开放接口(XML和HTTP)的标准
- 综合的HTML管理界面
- 可伸缩性-能够有效地复制到另外一个Solr搜索服务器
- 使用XML配置达到灵活性和适配性
- 可扩展的插件体系
Solr使用Lucene并且扩展了它!
- 一个真正的拥有动态域(Dynamic Field)和唯一键(Unique Key)的数据模式(Data Schema)
- 对Lucene查询语言的强大扩展!
- 支持对结果进行动态的分组和过滤
- 高级的,可配置的文本分析
- 高度可配置和可扩展的缓存机制
- 性能优化
- 支持通过XML进行外部配置
- 拥有一个管理界面
- 可监控的日志
- 支持高速增量式更新(Fast incremental Updates)和快照发布(Snapshot Distribution)
Schema(模式)
- 定义域类型和文档的域
- 能够驱动智能处理
- 声明式的Lucene分析器规范
- 动态域能够随时增加域
-
拷贝域功能允许对一个域进行多种方式的索引,或者将多个域联合成一个可搜索的域
- 显式类型能够减少对域类型的猜测
- 能够使用外部的基于文件的终止词列表,同义词列表和保护词列表的配置
查询
- 拥有可配置响应格式(XML/XSLT,JSON,Python,Ruby)的HTTP接口
- 高亮的上下文搜索结果
- 基于域值和显式查询的片段式搜索(Faceted Search)
- 对查询语言增加了排序规范
- 常量的打分范围(Constant scoring range)和前缀式查询-没有idf,coord,或者lengthNorm因子,对查询匹配的词没有数量限制
- 函数查询(Function Query)-通过关于一个域的数值或顺序的函数对打分进行影响
- 性能优化
核心
- 可插拔的查询句柄(Query Handler)和可扩展的XML数据格式
- 使用唯一键的域能够增强文档唯一性
- 能够高效地进行批量更新和删除
- 用户可配置的文档索引变化触发器(命令)
- 并发控制的搜索器
- 能够正确处理数字类型,从而能够进行排序和范围搜索
- 能够控制缺失排序域的文档
- 支持搜索结果的动态分组
缓存
- 可配置的查询结果,过滤器,和文档缓存实例
- 可插拔的缓存实现
- 后台缓存热启:当一个新的搜索器被打开时,可配置的搜索将它热启,避免第一个结果慢下来,当热启时,当前搜索器处理目前的请求(???)。
- 后台自动热启:当前搜索器缓存中最常访问的项目在新的搜索器中再次生成,能够在索引器和搜索器变化的时候高速缓存常查询的结果
- 快速和小的过滤器实现
- 支持自动热启的用户级别的缓存
复制
- 能够将使用rsync传输时改变的索引部分有效的发布
- 使用拉策略(Pull Strategy)来简化增加搜索器
- 可配置的发布间隔能够允许对时间线和缓存使用进行权衡选择
管理接口
- 能够对缓存使用,更新和查询进行综合统计
- 文本分析调试器,能够显示每个分析器每个阶段的结果
- 基于WEB的查询和调试输出:解析查询输出,Lucene的explain方法细节,能够解释为何某个文档打分低,被排除在结果中等等
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------配置------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
下载solr(1.4.1)以及tomcat(6.0.35)
解压solr将目录下apache-solr-1.4.1\dist\的apache-solr-1.4.1.war文件复制到apache-tomcat-6.0.35\webapps\下,并改名为:solr.war
在tomcat目录下:
apache-tomcat-6.0.35\conf\Catalina\localhost\
新增solr.xml
内容为:
<Context docBase="/apache-solr-1.4.1.war" debug="0" crossContext="true" >
<Environment name="solr/home" type="java.lang.String" value="E:/source/apache-solr-1.4.1/example/solr" override="true" />
</Context>
【.注意】
ContextdocBase=“solr.war的目录,如果放在了/tomcat安装目录/webapps下,则是这么/solr.war”
Environmentname="solr/home"必须这么写,可能solr默认为solr的home目录(记住必须这么写)。
Environment
value="E:\source\apache-solr-1.4.1\example\solr"值,是solr目录,就是包括bin,conf等目录,一定要有.
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
启动tomcat.输入http://localhost:8080/solr/admin/出现管理页面。
若出现错误
报错:java.lang.RuntimeException: Can't find resource 'solrconfig.xml' in classpath or 'solr\.\conf/',
现将解决办法记录下来:
1、将solr目录下,dist目录中的apache-solr-3.4.0.war 改名为solr.war文件部署到tomcat的webapps目录中
2、将solr目录中example/solr子目录中的data和conf两个目录拷贝到第一步中webapps下的solr目录中(需要启动一次tomcat,会自动 将war解压,这样就会生成solr目录)
3、修改tomcat的catalina.bat文件,在开始的地方添加JAVA_OPTS如下:
set JAVA_OPTS=%JAVA_OPTS% -Dsolr.solr.home=D:\works\jee\apache-tomcat-6.0.20\webapps\solr
注意,将solr.solr.home变量添加到系统环境变量中也不行,需要将其作为java的启动选项。
最后,重启tomcat,可以看到没有报错信息,接下来可以测试了。
分享到:
相关推荐
Apache Solr是一个性能强大的,基于 Lucene 的全文搜索的 开源企业级搜索服务器,拥有XML/HTTP,JSON APIs,hit highlighting, faceted search, caching, replication,web管理界面等很多功能,Solr运行在Java servlet...
zip 博文链接:https://aaron-ch.iteye.com/blog/153085
在tomcat的conf文件夹建立Catalina文件夹,然后在Catalina文件夹中在建立localhost文件夹,在该文件夹下面建立 apache-solr-3.6.0.xml 提交搜索资源并建立索引 cd /Volumes/Date/apache-tomcat-7.0.27/webapps/...
Apache Solr组很高兴地宣布Solr 1.3.0开始提供下载使用。此版本继续对功能有所加强,同时修改了之前的一些bug,包括: ——分布式搜索性能 ——许多Lucene和其他性能的改进 ——支持在单个部署中的多级索引 ——...
在windows10上部署solr7.7.2,部署环境是tomcat8.5.45,java8。配置文件已全部修改好下载即用
2. home文件夹中存放apache-solr-3.6.0\example\solr中的所有文件,删除data中所有的数据,server文件夹存放apache-solr-3.6.0\example\webapps中的war包,并且解压war包,解压又两种方式:1、用解压工具;...
只需要解压然后启动tomcat即可访问solr服务器,需要自行在apache-tomcat-solr-7.0.52\webapps\solr\solrhome\collection1\conf\schema.xml修改适合自己的配置的域即可
(1)准备工作:下载apache-tomcat-8.5.37,solr-7.7.1.tgz,Jdk1.8 解压solr7,进入solr7解压后的目录 (C:\Users\Administrator\Downloads\solr-7.7.1),复制并重命名solr-7.7.1目录里的server/solr-webapp/...
它将选择安装随 Drupal Apache Solr 或 Search API Solr 模块提供的 Solr 4.x 配置。 安装 有多种选择。 选一个。 要使用默认的 Solr conf 安装而不克隆存储库: curl ...
建立结构为solr-tomcat/solr的两个文件夹(solr的HOME目录),如建在D盘根目录,d:/solr-tomcat/solr,solr-tomcat文件夹名字可任意命名,将apache-solr-3.6.0examplesolr下的所有文件及文件夹拷贝到这下面 ...
用于solr定时更新索引的jar包,下载后引入到solr本身的dist下面,或者你tomcat项目下面的lib下面
将solr7.7.3集成到tomcat9.0.35,并且配置了权限,访问登录的时候需要通过BASIC认证。
tomcat-9.0.20\webapps\solr\WEB-INF\lib下(Tomcat项目里solr项目)其他三个文件放到apache-tomcat-9.0.20\webapps\solr\WEB-INF\classes下(Tomcat项目里solr项目)然后进行ik分词器的配置,编辑cor下路径的...
在X:\Tomcat 6.0\conf\Catalina\localhost下(目录不存在则手工建)创建配置文件solr.xml,内容为…… 4、配置索引数据格式 在X:\solr\solr\conf当中有schema.xml文件,可以配置索引数据格式。 5、运行solr 启动...
solr与Tomcat的连接jar包,欢迎下载
Solr是一种企业级的全文搜索引擎,有关Solr与Tomcat整合的详情请参见博文:http://blog.csdn.net/l1028386804/article/details/49914367
将apache-tomcat-8.0.36.zip放到电脑E盘运行tomcat端口号为8081,浏览器访问地址http://localhost:8081/solr/index.html;压缩包内有简单的java实现的solr小案例
Solr是一种企业级的全文搜索引擎,有关Solr与Tomcat整合的详情请参见博文:http://blog.csdn.net/l1028386804/article/details/49914367