RavenDB空间搜索 - session.Query返回session.Advanced.LuceneQuery的不同结果。

问题描述:

我对以下两个查询有点困惑。由于我的理解有限,我认为它们应该是完全相同的,但session.Advanced.LuceneQuery版本返回我期望的结果,session.Query版本返回的结果相当随机,结果肯定超过50英里给定的位置。RavenDB空间搜索 - session.Query返回session.Advanced.LuceneQuery的不同结果。

我更喜欢使用session.Query,因为我在链接多个where子句时使用它,而我无法使用LuceneQuery返回的IDocumentQuery。

我误解了两种查询类型之间的用途吗?

var query1 = session.Query<AccItem, AccItems_Spatial>() 
    .Customize(x => x.WithinRadiusOf(radius: 50, latitude: (double)search.Lat, longitude: (double)search.Lon)); 

var query2 = session.Advanced.LuceneQuery<AccItem, AccItems_Spatial>() 
    .WithinRadiusOf(radius: 50, latitude: (double)search.Lat, longitude: (double)search.Lon); 
+0

可以请你包括你的'AccItems_Spatial人指数的代码? – Junto 2012-09-03 16:22:13

Query和LuceneQuery实际上归结为完全相同的事情发生,所以我很惊讶地听到它们之间存在差异。 您可以创建一个失败的测试并将其发送到邮件列表?

还要注意的是,你可以多凡在LuceneQuery条款

+0

谢谢,我会看看我能否拿出一个测试。关于链接,我试图有条件地链接(即仅在指定搜索参数时才添加“where”子句),并且编译器正在抱怨将IDnumerable 投射到IDocumentQuery 。 – centralscru 2012-07-15 17:45:11