2012-07-15 52 views
1

我對以下兩個查詢有點困惑。由於我的理解有限,我認爲它們應該是完全相同的,但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

回答

0

Query和LuceneQuery實際上歸結爲完全相同的事情發生,所以我很驚訝地聽到它們之間存在差異。 您可以創建一個失敗的測試並將其發送到郵件列表?

還要注意的是,你可以多凡在LuceneQuery條款

+0

謝謝,我會看看我能否拿出一個測試。關於鏈接,我試圖有條件地鏈接(即僅在指定搜索參數時才添加「where」子句),並且編譯器正在抱怨將IDnumerable 投射到IDocumentQuery 。 – centralscru 2012-07-15 17:45:11