Solr源码概要
1. 总体结构
Solr程序是作为WebApp部署到像 Tomcat这样的容器中的。每一个Solr WebApp对应着一个Solr.home;该目录的结构如下:
├─bin ├─collection1 <--- 一个core,其中collection1为core的名称。 │ ├─conf <--- 存放该core配置文件的目录,最重要的是solrconfig和schema文件 │ │ ├─solrconfig.xml <--- 对该core的整体配置 │ │ ├─... │ │ └─schema.xml <--- 定义索引结构,filed和filedtype │ ├─data <--- 存放索引的目录 │ └─core.properties <--- 标志该目录为core的文件,其中name属性定义了core的名称。 │ ├─zoo.cfg └─solr.xml <--- 在非集群模式下,忽略该配置;里面定义了集群模式下的一些高级选项。
solr.home的配置有四种方式:
- 在web.xml文件中:
<env-entry> <env-entry-name>solr/home</env-entry-name> <env-entry-value>D:\solr\solr-home(solr.home的路径)</env-entry-value> <env-entry-type>java.lang.String</env-entry-type> </env-entry>
- 通过Tomcat的JNDI方式(JNDI: via java:comp/env/solr/home):在tomcat安装路径下:conf/Catalina/localhost目录下新建任意一个xml文件,例:solr.xml
<Context docBase="webapp的部署路径(the_path_to solr.war)" debug="0" crossContext="true" > <Environment name="solr/home" type="java.lang.String" value="C:/example2/solr(the_path_to_solr_home)" override="true" /> </Context>
- tomcat启动JAVA_OPTS参数中:在tomcat的根目录下,找到bin/catalina.bat 在JAVA_OPTS选项中添加,如windows下,可在最前面加入一行:
set JAVA_OPTS -Dsolr.solr.home=C:/example2/solr
- 使用程序当前目录
源码参见org.apache.solr.core.SolrResourceLoader#locateSolrHome
2. 对Solr的请求
用户对Solr应用程序的请求都会被一个名为:SolrRequestFilter的拦截器拦截,定义如下:
<filter> <filter-name>SolrRequestFilter</filter-name> <filter-class>org.apache.solr.servlet.SolrDispatchFilter</filter-class> </filter> <filter-mapping> <filter-name>SolrRequestFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
Solr请求:
-
/admin/cores
该请求由CoreAdminHandler处理,获取当前所有core的信息
-
/admin/collections
该请求由CollectionsHandler处理,仅在Cloud模式下使用,获取当前集群信息
-
/admin/info
该请求由InfoHandler处理
-
/[core_name]/schema
- 如果省略,则会使用默认collection1作为core 名称
- 获取core的schema配置信息
-
//[core_name]/[requestHandle_name]
- 如果省略,则会使用默认collection1作为core 名称
- 更handler名称交由该core下的requestHandler处理,如:
- select
- dataimport
- ......
以上。
相关推荐
solr-6.2.0 强大的分布式搜索引擎,包含各种详细例子及源码解析
solr全文检索,里面包含文档,源代码,jar包,使用的是solr4.2,东西比较全,安装文档就能跑起来,,适合参考借鉴
本人用ant idea命令花了214分钟,35秒编译的lucene-solr源码,可以用idea打开,把项目放在D:\space\study\java\lucene-solr路径下,再用idea打开就行了
solr6.6.0源码
Solr的安装部署包,只能分卷上传,稍后上传依赖jar包,及部署攻略
基于lucene的企业级搜索引擎。是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。...也可以通过Http G Solr et操作提出查找请求,并得到XML格式的返回结果。仅仅从官方提取的源码。
solr4.10官方源码,保存留用以后下载
详细阐述Solr-search 源码级别过程
Solr安装部署包,稍后上传配套部署攻略,并赋依赖jar包
Solr源码在MyEclipse下的搭建 1. 下载并按装Ant 下载地址: http://ant.apache.org/bindownload.cgi Ant环境变量配置: ANT_HOME: E:\Program Files\apache-ant-1.9.0 Path: %ANT_HOME%\bin 在cmd中输入ant -v...
Solr源码在MyEclipse下的搭建 1. 下载并按装Ant 下载地址: http://ant.apache.org/bindownload.cgi Ant环境变量配置: ANT_HOME: E:\Program Files\apache-ant-1.9.0 Path: %ANT_HOME%\bin 在cmd中输入ant -v...
solr-4.5源码包
使用springdatasolr编写的操作solr的项目,导入eclipse即可运行,里面包含solr的资源安装包
maven 整合solr4.2环境,另外整合了solr-data-import源码环境,资源10分,十分不贵!有需要的朋友请下载吧。花了我3个小时的时间整理的。下载后,使用maven导入即可使用,升级solr版本也比较方便。本环境使用了...
只能分卷上传,抱歉,稍候上传部署文档,以及依赖Jar包
SpringBoot整合Solr案例源码
Solr 依存于Lucene,因为Solr底层的核心技术是使用Lucene 来实现的,Solr和Lucene的本质区别有以下三点:搜索服务器,企业级和管理。Lucene本质上是搜索库,不是独立的应用程序,而Solr是。Lucene专注于搜索底层的...
新版solr参考手册pdf版,图文并茂,讲解详细,适合新手入门及提高。
solr(solr-9.0.0-src.tgz)源码
Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是...