与搜索和统计一起使用时,了解RavenDB的相交功能

时间:2015-02-20 21:57:44

标签: lucene ravendb

由于 result1 等于 result2 ,我认为这两种用法都是正确且等效的。一个有趣的事实是,只有在以与 result2 相同的方式构建查询时,RavenDB的统计总结果才是正确的。但是,任何人都可以详细解释我为什么尽管结果相同,但 result1 中构建的查询是错误的还是不好的做法?知道为什么统计总结果不起作用吗?

result1 = query1
             .Where(first filter)
             .Intersect()
             .Search(second filter)
             .Search(third filter)
             .ToList();

由lucene解释为(第一个过滤器)INTERSECT((第二个过滤器)OR(第三个过滤器))

result2 = query2.Where(first filter)
.Search(second filter, options:SearchOptions.And)
.Search(third filter).Search(third filter, options:SearchOptions.Or)
.ToList();

由lucene解释为(第一个过滤器)AND((第二个过滤器)OR(第三个过滤器))

0 个答案:

没有答案