solr搜索不到中文分词的结果

发布于 2021-12-02 21:44:20 字数 679 浏览 813 评论 5

使用的hanlp分词,索引和搜索的时候都将enableIndexMode参数设为true了,分词结果如下:

全词匹配搜“中医”是可以搜出来的

全词匹配搜“中医药”就搜索不出结果

但是在term info中是可以看到这个词的

希望有大神解答此问题,在此非常感谢!

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

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

发布评论

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

评论(5

噩梦成真你也成魔 2021-12-05 14:42:31

引用来自“hankcs”的评论

感谢大家的反馈,有其他问题也欢迎到HanLP项目主页:https://github.com/hankcs/HanLP 提问。GitHub是社区最活跃的地方,有大量资料和文档。

 

目前此问题已解决,hanlp作者已针对问题进行修正。具体详情请查看https://github.com/hankcs/HanLP/issues/496。在此向hanlp作者表示直径和感谢!

静谧 2021-12-05 12:51:56

感谢大家的反馈,有其他问题也欢迎到HanLP项目主页:https://github.com/hankcs/HanLP 提问。GitHub是社区最活跃的地方,有大量资料和文档。

路还长,别太狂 2021-12-05 05:44:12

引用来自“nrud”的评论

我遇到了类似的情况。

我有个数据是“服务大众”。直接搜索“服务”有结果,没问题。

搜索“title:服务”就搜索不出来。要搜索“text:服务”才有结果。或者搜索“title:服”会有结果。

你的solr配置可能不全面,solr允许为不同的字段指定不同的分词器。

<field name="text" type="text_cn" indexed="true" stored="false" multiValued="true"/>

只指定了text字段启用HanLP分词。

如果你的业务系统中有其他字段,比如title,content之类,也需要一一指定type="text_cn"。切记,否则这些字段仍旧是solr默认分词器,而不是HanLP,会造成这些字段“搜索不到”。

 

当然,你也可以直接将text_general这个fieldType设为HanLP分词:

<fieldType name="text_general" class="solr.TextField">
    <analyzer type="index">
        <tokenizer class="com.hankcs.lucene.HanLPTokenizerFactory" enableIndexMode="true"/>
    </analyzer>
    <analyzer type="query">
        <tokenizer class="com.hankcs.lucene.HanLPTokenizerFactory" enableIndexMode="true"/>
    </analyzer>
</fieldType>

由于绝大部分字段都是text_general类型的,所以说这种做法比较适合新手。

最终效果:

灵芸 2021-12-04 23:23:20

可能是title与text分词不一致导致的,默认情况title使用text_general

成熟的代价 2021-12-04 11:44:59

我遇到了类似的情况。

我有个数据是“服务大众”。直接搜索“服务”有结果,没问题。

搜索“title:服务”就搜索不出来。要搜索“text:服务”才有结果。或者搜索“title:服”会有结果。

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