zoukankan      html  css  js  c++  java
  • JAVA环境下利用solrj二次开发SOlR搜索的环境部署常见错误

    问题一:出现控制台坏的响应错误一Bad request

    控制台出现错误如下:

    Bad Request

    request: http://hostIP:8983/solr/update?wt=javabin&version=1

    解决方法:

    出现以上错误的原因是,solr服务器上配置的Field和javabean提交的Field不能对应,

    导致solr服务器找不到域,拒绝访问。

    打开SOLR_HOME下的conf文件夹找到schema.xml文件,在其中添加对应的域。

    例如以下代码添加了:title,URL,text三个域:

    JAVA环境下利用solrj二次开发SOlR搜索的环境部署常见错误 - 私人频道 - 金色年华

    还有种可能性是SolrInputDocument doc = new SolrInputDocument() 和doc.addField 不在一个循环中

    问题二:为Solr服务器添加IKanalyzer中文分词组件

    中文分词不支持

    在进行中文搜索和建立索引的过程中,不能正确拆分中文。

    解决方法:

    一.把IKAnalyzer3.2.8.jar放到

    apache-tomcat-6.0.32/webapps/solr/WEB-INF/lib下面

    二.修改配置文件:SOLR_HOME/conf/schema.xml

    JAVA环境下利用solrj二次开发SOlR搜索的环境部署常见错误 - 私人频道 - 金色年华

    问题三:Solr服务器不能搜索中文,出现中文乱码

    solr中文乱码

    在solr中搜索中文时出现中文乱码

    解决方法:

    主要是修改WEB容器的编码格式,以tomcat为例,需要修改tomcat默认的编码值为UTF-8。

    具体为修改,将TOMCAT_HOME下conf文件夹下的server.xml文件内的如下代码:

    <Connector port="8080" protocol="HTTP/1.1"

                   connectionTimeout="20000"

                   redirectPort="8443" />

    修改为:

    <Connector port="8983" protocol="HTTP/1.1"

                   connectionTimeout="20000"

                   redirectPort="8443" URIEncoding="UTF-8"/>

    其中修改了PORT:8080为8983,,主要是SOLR服务器的默认端口为8983,添加了tomcat容器的默认编码为:URIEncoding="UTF-8"。

     服务器端在获取数据的时候最好在获取数据之前加上如下一句:

    //下面这句很重要确保中文不出现乱码
      request.setCharacterEncoding("UTF-8"); 

    然后再获取数据:

     String title=request.getParameter("TITLE");
      String URL=request.getParameter("URL");
      String text=request.getParameter("TEXT");

    问题四:Solr服务器的默认索引位置

    Solr默认的索引存放位置为SOLR_HOME下的data/index下,

    如果想存在特定的位置,就要修改索引主目录。

    解决方法:

    修改SOLR_HOME下conf文件夹下solrconfig.xml文件,改为:

    <dataDir>${solr.data.dir:/home/solrindex}</dataDir>

    则index的主要存储目录改为:/home/solrindex。

    问题五:SOLR服务器的SOLR_HOME有什么作用

    新建Tomcat 6.0confCatalinalocalhostsolr.xml:

    <Context docBase="TOMCAT_HOME/webapps/solr.war" debug="0" crossContext="true" >

       <Environment name="solr/home" type="java.lang.String" value="SOLR_HOME" override="true" />

    </Context>

     其中solrhome的作用是在浏览器中访问的地址和solr各种配置文件放置的主要目的地。

  • 相关阅读:
    [Camtasia报错]An error occurred in the Recorde System Audio setup Failed
    [Oracle报错]RMAN-12005: error during channel cleanup/ORA-19550: cannot ...
    [Teamviewer报错]现在无法捕捉屏幕画面。这可能是由于快速的...
    [SVN技能]SVN服务迁移(Windows-Linux)
    [RabbitMQ技能]安装部署单节点RabbitMQ
    运算符的那些事
    java之连接数据库之JDBC访问数据库的基本操作
    面向对象编程之OC
    集合
    面向对象
  • 原文地址:https://www.cnblogs.com/hhcblog/p/3857389.html
Copyright © 2011-2022 走看看