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各种配置文件放置的主要目的地。

  • 相关阅读:
    oracle 使用正则表达式获取字符串中包含的数字
    oracle 将逗号分隔的字符串转成多行记录
    sqlplus下 查看oracle 执行计划
    使用connect by 虚拟生成100条记录
    Lomsat gelral
    Legacy
    慢慢变小的序列(好题)
    Walls(扫描线)
    线段树求面积并,面积交,周长
    最小圆覆盖(随机增量||模拟退火)
  • 原文地址:https://www.cnblogs.com/hhcblog/p/3857389.html
Copyright © 2011-2022 走看看