论坛首页 Java企业应用论坛

关于Lucene3.0.1 QueryParser的一个错误

浏览 2489 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-05-21   最后修改:2010-05-21
表达式1:
引用

id:"1231231" && title :"MYNAMEmonkey" && content:"你好吗"  && ur:"sdfsdfs""

四个条件的AND计算,在QueryParser解析为:
引用

+id:1231231 +title:mynamemonkey +content:"你 好 吗" +ur:sdfsdfs

这个逻辑应该是正确的

表达式2:
引用

id:"1231231" && title :"MYNAMEmonkey" || content:"你好吗"  && ur:"sdfsdfs""

中间的运算符改为|| OR计算,在QueryParser也被解析为:
引用

+id:1231231 +title:mynamemonkey +content:"你 好 吗" +ur:sdfsdfs

这个逻辑就不对了

大家也试试看,这应该是个bug吧。
   发表时间:2010-05-21  
补充一下,使用的Analyzer是StandardAnalyzer
0 请登录后投票
   发表时间:2010-05-24  
应该加括号区别 而且或运算不应该加+号 注意运算优先级
0 请登录后投票
   发表时间:2010-05-24  
qyhdt 写道
应该加括号区别 而且或运算不应该加+号 注意运算优先级


兄弟你看清楚帖子上说的问题没啊,有+号的那个表达式是QueryParse的输出结果啊,所以我才说QueryParser有问题啊
0 请登录后投票
   发表时间:2010-06-29  
我今天测试了一下,是使用 StandardAnalyzer,
结果如下:
文件内容为 "id:"1231231" && title :"MYNAMEmonkey" && content:"你好吗"  && ur:"sdfsdfs"
0 请登录后投票
   发表时间:2010-06-29  
zbmartin 写道
我今天测试了一下,是使用 StandardAnalyzer,
结果如下:
文件内容为 "id:"1231231" && title :"MYNAMEmonkey" && content:"你好吗"  && ur:"sdfsdfs"

没有你说的那个+号
0 请登录后投票
   发表时间:2010-06-29  
zbmartin 写道
zbmartin 写道
我今天测试了一下,是使用 StandardAnalyzer,
结果如下:
文件内容为 "id:"1231231" && title :"MYNAMEmonkey" && content:"你好吗"  && ur:"sdfsdfs"

没有你说的那个+号


对比了两种情况的分析结果了吗,与和或的。

另外你用的是啥版本的Lucene QueryParser,为啥会没有+号哩?
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics