【Lucene3.6.2入门系列】第13节_Solr3.6.2简介以及整合Tomcat

来源:互联网 发布:linux 向组里添加用户 编辑:程序博客网 时间:2024/05/22 04:23
完整版见https://jadyer.github.io/2013/08/20/solr-tomcat/




/** * 【Lucene3.6.2入门系列】第13节_Solr3.6.2简介以及整合Tomcat * @see Solr是一个高性能的,采用Java5开发的,基于HTTP和Lucene实现的开源企业级全文搜索引擎 * @see 可以粗暴的理解为:Lucene专注于搜索底层实现及算法优化,Solr专注于高层次的为企业服务的易于使用和管理的搜索服务器 * @see 再粗暴一点理解为:Lucene和Solr的关系类似于,Ajax和jQuery,Servlet和Struts2,JAX-WS和CXF,NIO和Mina的关系 * @see SolrJ是Solr提供的基于Java的访问Solr服务器的接口,它提供了对Solr服务器进行索引的CRUD(增删改查)和优化的相关接口 * @see -------------------------------------------------------------------------------------------------------------------------- * @see 官网:http://lucene.apache.org/solr/ * @see 下载:http://archive.apache.org/dist/lucene/solr/ * @see 文档:http://wiki.apache.org/solr/ * @see      http://wiki.apache.org/solr/SolrInstall * @see      http://wiki.apache.org/solr/Solrj * @see      http://wiki.apache.org/solr/SolrCloud * @see      http://wiki.apache.org/solr/SolrCloud%20using%20Jboss * @see 启动:解压apache-solr-3.6.2.zip中的example文件夹到本地硬盘,然后命令行执行[java -jar start.jar]便启动了Solr服务器 * @see     然后访问http://127.0.0.1:8983/solr/即可 * @see -------------------------------------------------------------------------------------------------------------------------- * @see 与Tomcat整合 * @see 0)前提是到Solr官方下载到apache-solr-3.6.2.zip * @see 1)在本地硬盘新建文件夹D:\Develop\apache-solr-3.6.2\文件夹 * @see 2)再新建D:\Develop\apache-solr-3.6.2\home\文件夹 * @see 3)将下载的apache-solr-3.6.2.zip\example\solr\里面的内容拷贝到上一步新建的home文件夹中 * @see 4)清空D:\Develop\apache-solr-3.6.2\home\data\文件夹里的内容 * @see 5)再新建D:\Develop\apache-solr-3.6.2\server\文件夹 * @see 6)将下载到的apache-solr-3.6.2.zip\example\webapps\里面的solr.war拷贝到上一步新建的server文件夹中 * @see   然后将solr.war中的文件解压在当前目录,即server文件夹中 * @see 7)编辑D:\Develop\apache-solr-3.6.2\home\conf\solrconfig.xml的第114行为下面的值 * @see   <dataDir>${solr.data.dir:D:\Develop\apache-solr-3.6.2\home\data}</dataDir> * @see   其实这一步也可以把data目录放到环境变量中,然后使用${environmentVariable}就引用到了 * @see 8)编辑D:\Develop\apache-tomcat-6.0.36\conf\server.xml的第144行(即<Hots>标签中)为下面的值 * @see   <Context path="/solr" docBase="D:\Develop\apache-solr-3.6.2\server\solr" reloadable="false"/> * @see 9)为<Context/>设置相应的环境变量,指明Solr的主目录的地址,修改好后是这样的 * @see   <Context path="/solr" docBase="D:\Develop\apache-solr-3.6.2\server\solr" reloadable="false"> * @see       <Environment name="solr/home" type="java.lang.String" value="D:\Develop\apache-solr-3.6.2\home" override="true"/> * @see   </Context> * @see 10)启动Tomcat,然后访问http://127.0.0.1:8088/solr/即可 * @see [注意事项] * @see 对于apache-solr-3.5.0.zip而言,最后在启动Tomcat时可能会报告下面的异常 * @see 严重: org.apache.solr.common.SolrException: Error loading class 'solr.VelocityResponseWriter' * @see Caused by: java.lang.ClassNotFoundException: solr.VelocityResponseWriter * @see 这时就要修改D:\Develop\apache-solr-3.6.2\home\conf\solrconfig.xml文件的第1554行(对于solr-3.6.2而言就是第1573行) * @see <queryResponseWriter name="velocity" class="solr.VelocityResponseWriter" enable="${solr.velocity.enable:false}"/> * @see 如果在取消了(即设置为false)VelocityResponseWriter输出格式后,重启Tomcat还是报告此异常,那就直接把这行代码注释掉应该就可以了 * @see -------------------------------------------------------------------------------------------------------------------------- * @see D:\Develop\apache-solr-3.6.2\home\conf\schema.xml * @see 1)这个文件中定义了大量的域,而且每个域都指定了fieldType,fieldType中定义了每个域使用的分词器 * @see 2)我们可以直接用solr定义好的域,也可以自定义域,并且solr提供的大量域中第一个域是id域,它的required是true,即必须的 * @see   我们可以直接用它的id域,也可以自定义id域,但只能有一个域required="true" * @see 3)并且程序中使要用的域名,都要在schema.xml中指定好,否则会报告下面的异常 * @see   org.apache.solr.common.SolrException: ERROR: [doc=1] unknown field 'content' * @see 4)该文件的第1026行可以配置默认的搜索域<defaultSearchField/> * @see   这个指的就是http://127.0.0.1:8088/solr/admin/界面中的Query String * @see -------------------------------------------------------------------------------------------------------------------------- */
原创粉丝点击