Пространственный поиск RavenDB — session.Query возвращает разные результаты из session.Advanced.LuceneQuery

Я немного запутался в следующих двух запросах. С моим ограниченным пониманием я думаю, что они должны быть идентичными, но в то время как версия session.Advanced.LuceneQuery возвращает результаты, которые я ожидаю, версия session.Query возвращает довольно случайные результаты, определенно более чем в 50 милях от данное местоположение.

Я бы предпочел использовать session.Query, так как я связываю с ним несколько предложений where, чего я не могу сделать с IDocumentQuery, возвращаемым LuceneQuery.

Я неправильно понимаю цель между двумя типами запросов?

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);

person centralscru    schedule 15.07.2012    source источник
comment
Пожалуйста, не могли бы вы включить код для вашего индекса AccItems_Spatial?   -  person Rebecca    schedule 03.09.2012


Ответы (1)


И Query, и LuceneQuery на самом деле сводятся к одному и тому же, поэтому я удивлен, узнав, что между ними есть различия. Можете ли вы создать неудачный тест и отправить его в список рассылки?

Также обратите внимание, что вы можете связать несколько предложений where в LuceneQuery.

person Ayende Rahien    schedule 15.07.2012
comment
Спасибо, я посмотрю, смогу ли я придумать тест. Что касается цепочки, я пытаюсь создать цепочку условно (т.е. добавить предложение where только в том случае, если был указан параметр поиска), и компилятор жалуется на приведение IEnumerable‹AccItem› к IDocumentQuery‹AccItem›. - person centralscru; 15.07.2012