Для меня определяют задачу с выбором механизма полнотекстового поиска, мы собираемся быть использованием на предстоящие проекты. На основе того, что я считал, я склоняюсь к Solr, но я немного обеспокоен пространственным поиском. В дополнение к некоторым другим параметрам (ключевые слова, категория, и т.д.) мы хотим смочь указать местоположение и максимальное расстояние (например, в 25 милях Темпе, Аризона). Мы хотели бы смочь отсортировать результаты по расстоянию.
Пространственный SOLR является по-видимому довольно новым, и не совсем ясно, какова его зрелость. Существует также несколько других опций (вручную вычисление и затем инвертирование расстояния или solr-spatial-light.
Мой вопрос в основном: пространственный Solr (или solr-spatial-light) готов к прайм-тайму обработать случай, который я описал выше, или действительно ли мы - более обеспеченное движение со Сфинксом?
Я также интересовался бы слушанием общих событий, реализовывая любой из них, особенно с php.
В настоящее время я использую Spatial Search Plugin (SSP) для Apache Solr в производстве, который основан на старой реализации пространственного Solr. Новая пространственная реализация (на момент написания этой статьи) доступна только в trunk (или nightly builds) и находится в стадии реализации. Я не знаю о текущем состоянии этой реализации.
Хотя Spatial Plugin имеет некоторые незначительные проблемы и этот старый код менее гибок, чем текущая реализация, его преимущество в том, что он легко развертывается на существующем стабильном экземпляре Solr 1.4. Кроме того, он хорошо документирован. Я использую его для точно такого же случая, который вы описали, без каких-либо проблем или проблем с производительностью.
Вам понадобится какой-нибудь геокодер для преобразования местоположений в координаты широты/долготы. Вы можете использовать MaxMind's GeoLite City или любую другую базу данных местоположений.
Я не могу комментировать Sphinx, так как не использую его.