当前位置: 代码迷 >> J2SE >> solr 搜索不到小弟我要的结果
  详细解决方案

solr 搜索不到小弟我要的结果

热度:7802   发布时间:2013-02-25 00:00:00.0
solr 搜索不到我要的结果
我从官网上下载的solr然后发布了,而且在配置文件那边做了些修改,如:
schema.xml

  <!--mmseg4j field types-->
<fieldType name="textComplex" class="solr.TextField" positionIncrementGap="100" >  
<analyzer>  
<tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex" dicPath="D:/lucene/solr/dic"/>  
<filter class="solr.LowerCaseFilterFactory"/>  
  </analyzer>  
</fieldType> 


我先在http://localhost:8080/solr/core0/admin/analysis.jsp 中运行了,如图

我输入了如下内容:
德基电影票、南京横店电影票、克里斯丁
发现是可以分词“南京”的
但是,我用solrj 实现了搜索功能,当我输入“南京”后,发现有部分数据搜索不到,比方说,"德基电影票、南京横店电影票、克里斯丁"这条记录就搜索不到,请问这是怎么回事哦?


------解决方案--------------------------------------------------------
你的SQL语句是 select * from .... 这样不好, 修改成 select busi_code , busi_name , busi_acc_bank from table . 所谓增加一个字段是这样的 select busi_code as code , busi_name as name , busi_name as name1 , busi_acc_bank as bank from table 
然后在schema.xml多配置一个name1的对应, 这个对应就是使用默认的分词, 记住, 不要用中文分词.
然后在solr 传入搜索条件的时候, name 和name1 都进行搜索, 这样要注意你的id , 还有schema.xml中属性主键属性的配置. 
其实你现在只发现了南京, solr中文分词最大的问题是对于一个汉字的搜索的支持是很不好的.
  相关解决方案