расширенный поиск mongodb с использованием mongomapper, sunspot / solr или sphinx? - PullRequest
3 голосов
/ 24 марта 2011

Я использую mongodb с mongomapper для хранения всех моих продуктов.Каждый продукт принадлежит нескольким категориям, которые имеют много уровней, т.е. категории, подкатегории и т. Д. Каждый продукт имеет много полей поиска, которые являются встроенными документами в продукте.

Все это работает, и теперь я хочу добавить поиск в приложение.

Поисковая система нуждается в текстовом поиске: многократный, динамический, граненый поиск, включая поиск по минимальному / максимальному диапазону.

Я изучал камень солнечных пятен, но с трудом настраивал его на dev, не говоря уже о попытке запустить его в производство!И я также посмотрел на sphinx.

Но мне интересно, будет ли использование mongomapper / mongodb достаточно быстрым и лучшим способом, так как это довольно сложная поисковая система?

Любая помощь /предложения / опыт / учебные пособия и примеры по этому вопросу были бы очень признательны.

Большое спасибо,

Рик

1 Ответ

1 голос
/ 24 марта 2011

Я участвовал в очень большом поиске по Сфинксу и думаю, что ужасно . Очень сложно настроить, если вы хотите что-нибудь после очень простого полнотекстового поиска. Solr \ Lucene, с другой стороны, невероятно гибок и невероятно прост в настройке и запуске.

Я не использую Solr в сочетании с MongoDB для обеспечения полнотекстового поиска со всеми дополнительными полезностями, такими как фасеты и т. Д. В зависимости от того, как вы конфигурируете Solr, вам может даже не потребоваться попасть в MongoDB для данных. Или вы можете сказать Solr индексировать поля, но не хранить их, а вместо этого вы просто сохраняете ObjectId, которые соответствуют данным внутри MongoDB.

Если ваш поиск действительно сложная поисковая система, я настоятельно рекомендую вам не использовать MongoDB для поиска и использовать Solr. Одна из основных причин заключается в том, что MongoDb не имеет полнотекстовой функции - вместо этого у него есть совпадения с регулярными выражениями. Совпадения с регулярными выражениями прекрасно работают, но в некоторых случаях будут использовать индексы.

...