请教下关于solr中文分词后,搜索结果的问题?

发布于 2021-11-23 07:24:25 字数 232 浏览 810 评论 1

大家好,因为站内搜索的需求,搞了个solr来进行站内搜索,由于以前也没接触过,这里小弟碰到一个问题,希望路过的大侠能帮着解决一下,或是给指点一下是因为什么原因,不胜感激.

问题是这样的,我的环境是linux服务器 solr版本3.6.2 mmseg4j 版本是1.8.5.我在词典里加入了 火影 火影忍者 当搜索火影忍者的时候,可以把火影忍者搜索出来,当只搜火影的时候,火影忍者搜索不出来,不知道是哪里的配置还是什么原因...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

疑心病 2021-11-24 07:33:47

你把你查询的那个字段设置成maxWord模式,然后重新加一条记录试试看。我这边之前遇到了这样一个问题,我词库有“圣诞”和“圣诞节”  ,相关设置是

<field name="title" type="text_general" indexed="true" stored="true" multiValued="true"/>
<field name="text" type="textMaxWord" indexed="true" stored="false" multiValued="true"/>

<copyField source="title" dest="text"/>


<fieldType name="textComplex" class="solr.TextField" >
   <analyzer>
     <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex" dicPath="/collection1/conf/mm4jdic"/>
   </analyzer>
  </fieldType>
  <fieldType name="textMaxWord" class="solr.TextField" >
   <analyzer>
     <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="max-word" dicPath="/collection1/conf/mm4jdic"/>
   </analyzer>
  </fieldType>
  <fieldType name="textSimple" class="solr.TextField" >
   <analyzer>
     <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="simple" dicPath="/collection1/conf/mm4jdic"/>
   </analyzer>
  </fieldType>

我添加的索引字段title是“圣诞节送孩子什么礼物好?”,但是查询"圣诞"的时候,竟然不高亮,并且我使用“title:圣诞”去查询的时候竟然查询不到结果,后来我把title改成了

<field name="title" type="textMaxWord" indexed="true" stored="true" multiValued="true"/>

之后重新添加数据,查询结果就正常了!你可以去试试看。对了我使用的solr版本是4.4,mmseg4j是1.9.1

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文