lexample/multicore:该目录包含了在Solr的multicore中设置的多个home目录 。在之后的文章中我会对其进行介绍 。
lexample/solr:该目录是一个包含了默认配置信息的Solr的home目录 。
【solr的java代码 solr schema】详见下面的“solr home说明”
lexample/webapps:Jetty的webapps目录,该目录通常用来放置Java的Web应用程序 。在Solr中,前面提到的solr.war文件就部署在这里 。
5)lib:该目录包含了所有Solr的API所依赖的库文件 。其中包括Lucene,Apache commons utilities和用来处理XML的Stax库 。
6)site:该目录仅仅包含了Solr的的网页内容,以及一些教程的PDF文档 。
7)src:该目录包含了Solr项目的整个源代码 。这里对其各个子目录也做相应的介绍 。
lsrc/java:该目录存放的是Solr使用Java编写的源代码 。
lsrc/scripts:该目录存放的是配置Solr服务器的Unix BashShell脚本,在后面介绍多服务器配置中将会有重要的作用 。
lsrc/solrj:前面提到过该目录存放的是Solr的Java版本的客户端代码 。
lsrc/test:该目录存放的是测试程序的源代码和测试文件 。
lsrc/webapp:该目录存放的是管理Solr的Web页面,包括Servlet和JSP文件,其构成了前面提到的WAR文件 。管理Solr的JSP页面在web/admin目录下面,如果你有兴趣折腾Solr可以找到相应的JSP的页面对其进行设置
1.4.2Solr home说明
所谓的Solr home目录实际上是一个运行的Solr实例所对应的配置和数据(Lucene索引) 。在上一篇文章中我提到过在Solr的example/solr目录就是一个Solr用做示例的默认配置home目录 。实际上example/multicore也是一个合法的Solr home目录,只不过是用来做mult-core设置的 。那么我们来看看example/solr这个目录里面都有些什么 。
example/solr目录下主要有以下一些目录和文件:
1)bin:如果你需要对Solr进行更高级的配置 , 该目录建议用来存放Solr的复制脚本 。
2)conf :该目录下面包含了各种配置文件,下面列出了两个最为重要的配置文件 。其余的.txt和.xml文件被这两个文件所引用,如用来对文本进行特殊的处理 。
lconf/schema.xml:该文件是索引的schema , 包含了域类型的定义以及相关联的analyzer链 。
lconf/solrconfig.xml:该文件是Solr的主配置文件 。
lconf/xslt:该目录包含了各种XSLT文件,能将Solr的查询响应转换成不同的格式,如:Atom/RSS等 。
3)data:包含了Lucene的二进制索引文件 。
4)lib:该目录是可选的 。用来放置附加的Java JAR文件,Solr在启动时会自动加载该目录下的JAR文件 。这就使得用户可以对Solr的发布版本(solr.war)进行扩展 。如果你的扩展并不对Solr本身进行修改 , 那么就可以将你的修改部署到JAR文件中放到这里 。
Solr是如何找到运行所需要的home目录的呢?
Solr首先检查名为solr.solr.home的Java系统属性,有几种不同的方式来设置该Java系统属性 。一种不管你使用什么样的Java应用服务器或Servlet引擎都通用的方法是在调用Java的命令行中进行设置 。所以 , 你可以在启动Jetty的时候显式地指定Solr的home目录java -Dsolr.solr.home=solr/ -jar start.jar 。另一种通用的方法是使用JNDI,将home目录绑定到java:comp/env/solr/home 。并向src/webapp/web/WEB-INF/web.xml添加以下一段代码:
1env-entry
2env-entry-namesolr/home/env-entry-name
3env-entry-valuesolr//env-entry-value
4env-entry-typejava.lang.String/env-entry-type
5/env-entry
实际上这段XML在web.xml文件中已经存在 , 你只需要把原来注释掉的xml取消注释,添加你所要指向的home目录即可 。因为修改了web.xml文件,所以你需要运行antdist-war来重新打包之后再部署WAR文件 。
推荐阅读
- 网络管理的毕业设计题目,网络管理技术论文
- oracle函数计算往前时间,oracle 日期计算函数
- java虚拟机做服务器,java虚拟机运行java程序的基本步骤
- chatgpt写论文速度,看论文速度
- 函数c语言报告总结 c语言函数的实验报告总结
- linux系统命令行关机,linux系统怎么关机
- python怎么设置按任意键退,python如果按下某键
- vb.net读文件ifile,vbnet读写文件
- linux清空硬盘命令 linux清除硬盘数据