Непоследовательные результаты поиска с использованием пространственного.net и lucene.net 2,9 - PullRequest
1 голос
/ 13 апреля 2011

Здравствуйте. В настоящее время я работаю над реализацией функции пространственного поиска для веб-сайта с использованием c #, lucene.net иatial.net

Проблема, с которой я сталкиваюсь, заключается в следующем:

Iиндексный документ 5 со следующими местоположениями:
Документ 1: Лос-Анджелес, Калифорния
Документ 2: Пасадена, Калифорния
Документ 3: Санта-Моника, Калифорния
Документ 4: Сакраменто, Калифорния
Документ5: Денвер, CO

Затем я продолжаю выполнять несколько поисков по результирующему индексу (для моего теста NUnit, в котором я использую RAMDirectory), используя точку Лос-Анджелеса в качестве источника, а также добавив ее в составданные.

Радиус Результаты Пройдите
10 Миль 1 Да
20 Миль 2 Нет
25 Миль 2 Нет
50 Миль 3 Да

Обратите внимание, что я ожидал 3Результаты начинаются с 20-мильного поиска.Это также происходит с некоторыми другими значениями радиуса, например, 5000 миль возвращают только 1 результат, когда на 3500 миль я получаю все 5 документов.

Кто-нибудь знает об ошибке в кодеatial.net, которая может вызыватьэтот?Версия lucene .net находится на 2.9.2, и, возможно, это было решено в более поздней версии.Любая помощь будет оценена, спасибо

Ответы [ 2 ]

2 голосов
/ 11 мая 2011

Я, наконец, получил это работает.В текущей версии lucene.net
есть ошибка в модуле contrib- пространственных данных contrib * Эта ошибка приводит к сбою поиска в некоторых крайних случаях.Проблема вызвана классом CartesianShapeFilter.Я взял источник из Java-версии lucene и перенес только код пространственного вклада.
После того, как был портирован каждый класс, я должен был скомпилировать и снова запустить свой тест.Наконец, я сузил его до этого класса.
Я надеюсь, что это кому-нибудь поможет, если вам нужен код для этого, я отправлю патч людям, работающим на lucene.net, чтобы они могли сделать его доступным.

0 голосов
/ 06 июня 2011

Изменения, которые вы внесли, включают ли они действительно исправление, указанное в https://issues.apache.org/jira/browse/LUCENE-1930? Я сталкивался с этими ошибками в Spatial.NET во время координат дистанционной фильтрации в Германии. Мне пришлось использовать очень большие мили, чтобы получить некоторые результаты. После исправлений, описанных в патче, он работал корректно даже с очень маленькими коробками.

...