复杂条件表达式查询出错

Mar 12, 2013 at 10:24 AM
例如: Where Tags contains '广州 天河' and (Title match '手机 发热' or Accurate_So match '手机 发热')

如果Tags contains '广州 天河' 没有匹配到数据,返回的结果集就是 (Title match '手机 发热' or Accurate_So match '手机 发热') ,忽略了前面的过滤条件

跟踪了源代码,应该是ParseWhere中的方法InnerParse和GetResultFromQuery对参数Core.SFQL.Parse.DocumentResultWhereDictionary upDict的判断有问题
有好几处只判断 upDict.Count > 0 ,应该是(upDict.Count > 0 || upDict.ZeroResult)

虽然修改后可以得到正常的结果,但不知道会不会有其它的问题,希望作者能针对这个问题出一个补丁,另外针对这种情况应该还是有性能优化的余地的

谢谢!