правильная база данных / подход к выполнению запросов ключевых фраз с множеством возможных «ключевых слов», соответствующих каждой записи - PullRequest
0 голосов
/ 09 февраля 2011

мое приложение rails 3 размещено в Heroku с использованием postgres для обычной базы данных, такой как отслеживание сообщений и пользователей. 100% моего опыта связано с обычными реляционными базами данных и SQL.

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

Наша цель - найти один из 5000 типов продуктов («отвертка», «открывалка для бутылок» и т. Д.), Которые наилучшим образом соответствуют списку из 50 000 ключевых слов и фраз. Например, может быть 10-20 слов или словосочетаний, которые соответствуют и возвращают «отвертка» («крестовая отвертка», «плоская отвертка» и т. Д.).

Я подозреваю, что есть какой-то умный дизайн, возможно, построенный вокруг специализированной базы данных совсем другой формы MySQL, Postgres и т. Д., Который оптимизирован для этой "ассоциативной", а не реляционной информационной структуры.

Любые указатели будут оценены ...

1 Ответ

1 голос
/ 09 февраля 2011

Что вы смотрите на базу данных, которая может эффективно обрабатывать текстовую индексацию? Я не уверен, как база данных no-sql может помочь вам с этой проблемой. Oracle ввел текст оракула из оракула 9. (я думаю), и я использовал его для решения проблемы, аналогичной вашей, и она работает превосходно.

Если вы ищете решение, не зависящее от поставщика базы данных, тогда я предлагаю вам проверить наш поиск в спящем режиме. Он использует мощную индексацию lucene внизу и обеспечивает очень работоспособный уровень абстракции.

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