用paodingAnalyzer 怎么让它搜索到PhraseQuery任意一个词都hit
thirdeye
2009-05-12
使用paodingAnalyzer是,输入关键字“女性 时期”,它会把带有“女性”和“时期”的记录都返回,但是如果我输入“女性时期”(没有空格),就只返回两个词都有的记录。怎样让没有空格也能实现有空格那样的效果呢?
我单步发现,“女性 时期”创建的是BooleanQuery,包含两个TermQuery(“女性”,“时期”)而“女性时期”创建的是PharseQuery(“女性 时期”)。 最好不改paodingAnalyzer的源码。 |
|
ppsddt
2009-05-13
你选择的应该是最大切词 paoding中有两个切词法
一个人最多切词most-words 一个是最大切词max-words-length 这两种模式可以在 paoding-analyzer.properties 文件种配置 如果不配置 默认情况 也为most-words切词模式 |
|
thirdeye
2009-05-13
ppsddt 写道 你选择的应该是最大切词 paoding中有两个切词法
一个人最多切词most-words 一个是最大切词max-words-length 这两种模式可以在 paoding-analyzer.properties 文件种配置 如果不配置 默认情况 也为most-words切词模式 改成max-word-length请求分词的结果把“女性时期”当一个词来查找,也不能找到结果。 我暂时修改了QueryParser的getFieldQuery方法时返回的结果是Booleanquery,暂时先这样用着,谁有不需要修改paoding源码的方法还请分享下。 |