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


    这篇文章接着上一篇文章,把Solr的home目录介绍完。所谓的Solr home目录实际上是一个运行的Solr实例所对应的配置和数据(Lucene索引)。在上一篇文章中我提到过在Solr的example/solr目录 就是一个Solr用做示例的默认配置home目录。实际上example/multicore也是一个合法的Solr home目录,只不过是用来做mult-core设置的。那么我们来看看example/solr这个目录里面都有些什么。

    该目录下主要有以下一些目录和文件:

    bin:如果你需要对Solr进行更高级的配置,该目录建议用来存放Solr的复制脚本。

    conf :该目录下面包含了各种配置文件,下面列出了两个最为重要的配置文件。其余的.txt和.xml文件被这两个文件所引用,如用来对文本进行特殊的处理。

    conf/schema.xml:该文件是索引的schema,包含了域类型的定义以及相关联的analyzer链。

    conf/solrconfig.xml:该文件是Solr的主配置文件。

    conf/xslt:该目录包含了各种XSLT文件,能将Solr的查询响应转换成不同的格式,如:Atom/RSS等。

    data:包含了Lucene的二进制索引文件。

    lib:该目录是可选的。用来放置附加的Java JAR文件,Solr在启动时会自动加载该目录下的JAR文件。这就使得用户可以对Solr的发布版本(solr.war)进行扩展。如果你的扩展并不对Solr本身进行修改,那么就可以将你的修改部署到JAR文件中放到这里。

    上面已经介绍了Solr的home目录,那么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添加以下一段代码:

    1<env-entry>
    2  <env-entry-name>solr/home</env-entry-name>
    3  <env-entry-value>solr/</env-entry-value>
    4  <env-entry-type>java.lang.String</env-entry-type>
    5</env-entry>

    实际上这段XML在web.xml文件中已经存在,你只需要把原来注释掉的xml取消注释,添加你所要指向的home目录即可。因为修改了web.xml文件,所以你需要运行ant dist-war来重新打包之后再部署WAR文件。

    最后,如果Solr的home目录既没有通过Java系统属性指定也没有通过JNDI指定,那么他将默认指向solr/。

    在产品环境中,我们必须设置Solr的home目录而不是让其默认指向solr/。而且应该使用绝对路径,而不是相对路径,因为你有可能从不同的目录下面启动应用服务器。

    到此,就结束了Solr的整个目录结构的介绍,下一篇文章将试着向Solr中导入一些实验数据,并对其进行搜索测试。

  • 相关阅读:
    士兵杀死(两)(南阳116)
    Android 墙纸设置代码 详细说明
    Laravel nginx 伪静态规则
    STL源代码分析——STL算法merge合并算法
    第29周六
    第29周五
    第29周四
    第29周三
    2014第29周二
    第29周一
  • 原文地址:https://www.cnblogs.com/wycg1984/p/1690266.html
Copyright © 2020-2023  润新知