Solr应用开发——Solr home目录结构简介1

这篇文章将简要的介绍一下Solr的目录结构。进入Solr所在的目录,我们可以看到以下几个目录:build、client、dist、example、lib、site、src。接下来分别对其进行介绍。

build:该目录是在ant build过程中生成的,其中包含了未被打包成jar或是war的class文件以及一些文档文件。

client:该目录包含了特定语言的Solr客户端API,使得使用其他语言的用户能通过HTTP用XML与 Solr进行通话。现在该目录里面虽然包含javascript、python、ruby三个子目录,但是到目前为止只包含一部分的ruby的代码,其他 语言仍是空的。另外,Solr的Java客户端称为SolrJ,其代码位于src/solrj目录下面。在之后的文章中我会详细介绍Solr客户端的使 用。

dist:该目录包含build过程中产生的war和jar文件,以及相关的依赖文件。还记得上一篇文章中,我 们在build 1.4版本的Solr源代码后需要部署example吗?其实就是将该目录下面的apache-solr-1.4.war部署到Jetty上面去,并重命 名为solr.war。

example:这个目录实际上是Jetty的安装目录。其中包含了一些样例数据和一些Solr的配置。其中一些子目录也比较重要,这里也对它们稍作介绍。

  • example/etc:该目录包含了Jetty的配置,在这里我们可以将Jetty的默认端口从8983改为80端口。
    你需要找到以下代码:
    01<Call name="addConnector">
    02  <Arg>
    03     <New class="org.mortbay.jetty.bio.SocketConnector">
    04           <Set name="port">
    05              <SystemProperty name="jetty.port" default="8983"/>
    06           </Set>
    07           <Set name="maxIdleTime">50000</Set>
    08           <Set name="lowResourceMaxIdleTime">1500</Set>
    09     </New>
    10  </Arg>
    11</Call>

    将其中的8983端口换成80端口。注意更改端口后启动Jetty可能会提示你没有权限,你需要使用sudo java -jar start.jar来运行。

  • example/multicore:该目录包含了在Solr的multicore中设置的多个home目录。在之后的文章中我会对其进行介绍。
  • example/solr:该目录是一个包含了默认配置信息的Solr的home目录。下一篇博文将详细介绍Solr的home目录的结构。
  • example/webapps:Jetty的webapps目录,该目录通常用来放置Java的Web应用程序。在Solr中,前面提到的solr.war文件就部署在这里。

lib:该目录包含了所有Solr的API所依赖的库文件。其中包括Lucene,Apache commons utilities和用来处理XML的Stax库。

site:该目录仅仅包含了Solr的官网的网页内容,以及一些教程的PDF文档。

src:该目录包含了Solr项目的整个源代码。这里对其各个子目录也做相应的介绍。

  • src/java:该目录存放的是Solr使用Java编写的源代码。
  • src/scripts:该目录存放的是配置Solr服务器的Unix Bash Shell脚本,在后面介绍多服务器配置中将会有重要的作用。
  • src/solrj:前面提到过该目录存放的是Solr的Java版本的客户端代码。
  • src/test:该目录存放的是测试程序的源代码和测试文件。
  • src/webapp:该目录存放的是管理Solr的Web页面,包括Servlet和JSP文件,其构成了前面提到的WAR文件。管理Solr的JSP页面在web/admin目录下面,如果你有兴趣折腾Solr可以找到相应的JSP的页面对其进行设置。

本打算在这篇文章里面把Solr的home目录结构也给写出来,但是看看,文章已经有点长了,那就放到下一篇吧。

原文地址:https://www.cnblogs.com/wycg1984/p/1690265.html