都是分词模式惹的祸——庖丁解牛分词查询不出结果问题

最近一直负责做lucene构建搜索引擎,其中采用的中文分词器就是qieqie提供的庖丁解牛分词器。由于发现当搜索:
1、关于番禺供电局增加乙类工作票签发人的请示
2、关于从化供电局2006年度“两票”考核奖励方案的报告
3、关于辖区内10KV架空线路两旁(线行下)受树木影响情况的报告
4、关于增城供电局防坠落装置安装和使用情况的报告
5、关于广州萝岗供电局2007年安措计划的报告
6、关于召开重要变电站事故应急预案编制讨论会的通知(9月9日上午9:30)
7、关于召开《广东电网继电保护通信通道运行管理办法
当搜索整条句子时查不出结果,但是去掉红色部分再查找却可以查找到结果。

刚开始的分析:
从以上可总结出:
1、2、3、4、5:去掉的部分都是地名。
7:去掉的是特殊符号
6:还未找出具体问题,当查询“关于召开重要变电站事故应急预案编制讨论会的通知”还是一样查找不出结果。

本想去研究一下庖丁解牛分词的源码,可现在这两周接到做jbpm工作流的任务,所以一直拖着没去看。

可这个问题一直挂在心上,昨天突然想到那个配置文件:

<bean id="writerAnalyzer" class="com.net.paoding.analysis.analyzer.PaodingAnalyzer">  

        <property name="knife" ref="paoding"/>  

        <property name="mode" value="1"/>  

    </bean>  

     

    <bean id="queryAnalyzer" class="com.net.paoding.analysis.analyzer.PaodingAnalyzer">  

        <property name="knife" ref="paoding"/>  

        <property name="mode" value="2"/>  

    </bean>  

     

    <bean id="paoding" class="com.net.paoding.analysis.knife.PaodingMaker"  factory-method="make"/> 

写索引的时候采用writerMode(1)而查询的时候采用queryMode(2),会不会是这两次采用了不同的模式导致。

所以把上面查询的模式也改为writerModevalue="1".再查询发现可以查出上面的结果出来。看来还真是这个问题导致。

今早来上班又到网上查了下,原来qieqie早已提到了这个问题。

qieqie在javaeye上的帖子中的回复内容:

参见:
[url=http://analysis.group.javaeye.com/group/post/15584 ]JavaEye
Spring Context下使用"庖丁解牛
" [/url]
或:

Google:Spring Context下使用"庖丁解牛"
简单摘要(以上面两个链接中的说明为准,这里只是摘要)

Java代码

<bean id="writerAnalyzer" class="com.net.paoding.analysis.analyzer.PaodingAnalyzer">  

        <property name="knife" ref="paoding"/>  

        <property name="mode" value="1"/>  

    </bean>  

     

    <bean id="queryAnalyzer" class="com.net.paoding.analysis.analyzer.PaodingAnalyzer">  

        <property name="knife" ref="paoding"/>  

        <property name="mode" value="2"/>  

    </bean>  

     

    <bean id="paoding" class="com.net.paoding.analysis.knife.PaodingMaker"  factory-method="make"/>

 

补:
1
建立索引和使用索引只能使用同一种/模式的分词器
22.0.2以后(包含)queryModewriterMode这两个名称将重构为更好的名称,请留意倒是的API说明或readme变更说明。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值