Solr vs. Sphinx для пространственного поиска - PullRequest
8 голосов
/ 13 мая 2010

Мне поручено выбрать полнотекстовую поисковую систему, которую мы будем использовать в будущих проектах. Исходя из того, что я прочитал, я склоняюсь к Solr, но меня немного беспокоит пространственный поиск. В дополнение к некоторым другим параметрам (ключевые слова, категория и т. Д.) Мы хотим иметь возможность указать местоположение и максимальное расстояние (например, в пределах 25 миль от Темпе, Аризона). Мы хотели бы иметь возможность сортировать результаты по расстоянию.

Пространственный SOLR, по-видимому, довольно новый, и не совсем ясно, какова его зрелость. Есть также несколько других опций (вычисление вручную, а затем инвертирование расстояния, или solr -atial-light .

Мой вопрос в основном: достаточно ли Spatial Solr (или solr-пространственный-свет) для прайм-тайма, чтобы справиться со случаем, который я описал выше, или нам лучше использовать Sphinx?

Мне также было бы интересно услышать общий опыт реализации любого из них, особенно с php.

1 Ответ

5 голосов
/ 13 мая 2010

В настоящее время я использую Плагин пространственного поиска (SSP) для Apache Solr в рабочей среде, основанный на более старая реализация пространственного Solr. Новая пространственная реализация (на момент написания этой статьи) доступна только в транке (или ночных сборках ) и , которые в настоящее время реализуются . Я не знаю о текущем состоянии этой реализации.

В то время как у Spatial Plugin есть некоторые незначительные проблемы , и этот старый код менее гибок, чем текущая реализация, он имеет преимущество в том, что его легко развернуть в существующий стабильный экземпляр Solr 1.4. Плюс, это хорошо задокументировано. Я использую его для того же варианта использования, который вы описываете, без каких-либо проблем или проблем с производительностью.

Вам понадобится геокодер для преобразования местоположений в координаты широты / долготы. Вы можете использовать MaxMind's GeoLite City или любую другую базу данных местоположений.

Я не могу комментировать Сфинкса, поскольку я им не пользуюсь.

...