Solr应用开发——Solr home目录结构简介1
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目录结构也给写出来,但是看看,文章已经有点长了,那就放到下一篇吧。