Ravendb 为什么LINQ查询与Advanced.LuceneQuery在性能上存在如此大的差异?

Ravendb 为什么LINQ查询与Advanced.LuceneQuery在性能上存在如此大的差异?,ravendb,Ravendb,我问这个问题的原因是我一直在使用强类型版本,但遇到了它不够灵活的问题,所以我切换到AdvancedQuery.Luncene,它确实提供了灵活性,但性能有所下降。我在想,较低级别的查询引擎将比它的计数器部分或至少同等部分更快。有人能解释一下吗 谢谢,, 斯蒂芬 watch=Stopwatch.StartNew(); 结果=s.Query() .统计数据(统计数据) .其中(x=>x.HasPicture==true) .ToArray(); 看,停; 为HasPicture执行查询所用的时间=

我问这个问题的原因是我一直在使用强类型版本,但遇到了它不够灵活的问题,所以我切换到AdvancedQuery.Luncene,它确实提供了灵活性,但性能有所下降。我在想,较低级别的查询引擎将比它的计数器部分或至少同等部分更快。有人能解释一下吗

谢谢,, 斯蒂芬

watch=Stopwatch.StartNew();
结果=s.Query()
.统计数据(统计数据)
.其中(x=>x.HasPicture==true)
.ToArray();
看,停;
为HasPicture执行查询所用的时间==true 975

找到的产品总数:412352

watch = Stopwatch.StartNew();
result = s.Advanced.LuceneQuery<Product>("Products_Index")
            .Statistics(out stats)
            .Where("HasPicture:(True)")
            .ToArray()
            ;

watch.Stop();
watch=Stopwatch.StartNew();
结果=s.Advanced.LuceneQuery(“产品索引”)
.统计数据(统计数据)
.Where(“HasPicture:(True)”)
.ToArray()
;
看,停;
使用Lucene 7065执行查询所用的时间


找到的产品总数:412352

当您偏离标准性能基线时,选择性能战。我会从开箱即用的设置开始,收集数据,测量,冲洗并重复。如果观察到不可接受的性能下降,则根据观察结果采取行动,然后改变一件事,收集数据,测量。。。因此,答案是首先进行OOB设置。

多亏了Itamar

watch = Stopwatch.StartNew();
result = s.Advanced.LuceneQuery<Product>("Products_Index")
            .Statistics(out stats)
            .Where("HasPicture:(True)")
            .ToArray()
            ;

watch.Stop();
当使用LuceneQuery使用WhereEquals时,问题是Where子句

 result = s.Advanced.LuceneQuery<Product>("Products_Index")
                    .Statistics(out stats)
                    .WhereEquals("HasPicture", true)
                    .ToArray()
                    ;
result=s.Advanced.LuceneQuery(“产品索引”)
.统计数据(统计数据)
.WhereEquals(“HasPicture”,真)
.ToArray()
;

Peter,我对这个问题有了一些了解。