solr 分布式查询产生的奇怪错误

郑宁 发布于 2010/11/30 10:38
阅读 1K+
收藏 1

 因为项目每天的索引文件是增量的,所以考虑用solr的分布式查询。

但是在试验的时候发现一个奇怪的问题,我一共开了3个tomcat用来模拟3个服务器

同样的请求参数wt=javabin,version=1,q=content:哈利

主服务报错 如下
Internal Server Error
request: http://localhost:8080/solr/select?q=content:哈利&wt=javabin&version=1
从服务器在tomcat后台已经可以看到查询的结果,而且是正确的···

如果把 配置文件中的shards 配置删掉 http://localhost:8080/solr/select?q=content:哈利&wt=javabin&version=1

这个请求是正确的,一直找不到出错的原因。。。

配置文件部分代码如下

  <requestHandler name="standard" class="solr.SearchHandler" default="true">
    <!-- default values for query parameters -->
     <lst name="defaults">
       <str name="echoParams">explicit</str>
        <bool name="hl">true</bool> 
       <str name="hl.fl">content</str> 
        <int name="hl.snippets">1</int>   
        <str name="shards">localhost:8944/solr,localhost:8943/solr</str> 
         <!--
         <int name="rows">10</int>
       <str name="fl">*</str>
       <str name="version">2.1</str>
        -->
     </lst>
  </requestHandler>

请了解solr分布式的大侠们帮忙看看,这个问题困扰我好几天了,不胜感激!

加载中
0
郑宁
郑宁

有网友指出是子服务器返回的高亮结果的问题,现在已经不不报错了。
可是还是没查询出来结果,如果单独的去查子服务器是可以的,但是加上shards
分布式的去查询返回结果为空。
子服务器后台日志如下:
2010-12-1 11:59:49 org.apache.solr.core.SolrCore execute
信息: [] webapp=/solr path=/select params={fl=id,score&start=0&q=content:txt&isS
hard=true&wt=javabin&fq=&fsv=true&rows=20&version=1} hits=5 status=0 QTime=0
2010-12-1 11:59:49 org.apache.solr.core.SolrCore execute
信息: [] webapp=/solr path=/select params={fl=id,path,content,id&q=content:txt&i
ds=11.txt,13.txt,15.txt,12.txt,14.txt&isShard=true&wt=javabin&fq=&rows=20&versio
n=1} status=0 QTime=0
按道理不是应该返回SolrDocument集合然后在主服务器合并吗?
请使用过分布式查询的大侠们,给点指点吧···

0
郑宁
郑宁

经试验 solr在进行分布式查询时 若你的索引文件是通过solr生成的 那么没问题

若你的索引文件是用Lucene自己生成的 那么solr在分布式查询时查询不到任何信息也不报错

但是只要不是分布式查询 对单机的普通查询Lucene建立的索引文件是没问题

希望有碰到这个问题的朋友,一起关注下··· 或者有什么解决办法,请不吝赐教····  谢谢大家···

无夏之年
无夏之年
还有这个现象啊,有点意外
返回顶部
顶部