Использование MongoDB на Django для поиска в реальном времени? - PullRequest
2 голосов
/ 26 мая 2010

Я работаю над проектом, который достаточно ориентирован на поиск. По сути, пользователи будут добавлять контент на сайт, и этот контент должен быть немедленно доступен в результатах поиска. Проект все еще находится в разработке.

До сих пор я использовал стог сена с Xapian. Одна вещь, которая меня беспокоит, - это производительность веб-сайта, когда доступно много контента. Индексация должна выполняться очень часто, если я хочу эмулировать поиск в реальном времени.

Я недавно читал на MongoDB. Я не нашел удовлетворительного ответа на свой вопрос, но у меня есть ощущение, что MongoDB может помочь в проблеме индексации поиска в реальном времени, с которой я ожидаю столкнуться. Это правильно? Другими словами, будут ли функции поиска, доступные в MongoDB, более подходящими для функции поиска в реальном времени?

Контент, который будет доступен на сайте, представляет собой большой неструктурированный текст (включая HTML) и связанные данные (цены, теги, информация о времени и дате).

Заранее спасибо,

Laundro

Ответы [ 2 ]

1 голос
/ 13 мая 2012

MongoDB на самом деле не является «специализированной системой полнотекстового поиска».На основе их полнотекстового поиска документов вы можете создать только массив тегов, который дублирует строковые данные или другие столбцы, которые с большим количеством элементов (сотни или тысячи) могут сделать вставки очень дорогими.* Согласитесь с Tomasz, Sphinx Search может быть использован для того, что вам нужно. Индексы в реальном времени , если вы хотите, чтобы оно было действительно в реальном времени, или Дельта-индексы , если допустимы несколько секунд задержки.

0 голосов
/ 26 мая 2010

Я не знаю много о MongoDB, но использую с большим успехом Поиск Sphinx - простой, мощный и очень быстрый инструмент для полнотекстовой индексации и поиска. Он также предоставляет упаковщик Python "из коробки".

Было бы легче подобрать его, если бы Хейстек предоставил привязки для него, к сожалению, привязки Сфинкса все еще находятся в списке пожеланий. Тем не менее, настройка Spinx настолько быстра (я сделал это за несколько часов для существующей производственной CRM на основе Django), что, возможно, вы сможете попробовать его, прежде чем перейти к более общему решению.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...