2014-10-10 4 views
0

У меня есть несколько коллекций, которые нужно искать при поиске слов. Эти коллекции объединяются в одну коллекцию поиска. У меня есть несколько полей, которые полнотекстовые и некоторые поля, которые представляют собой массив тегов tags.Those текста приходят из нескольких контекстовСтруктура поиска Mongo

Учитывая, что Монго использовать только один индекс поиска, и что в compound index can only contain one array field. Я склонен помещать все теги в набор в каком-либо поле этой структуры поиска.

Мой вопрос: как насчет полей полного текста? Должен ли я просто конкатенировать их и добавлять их в какое-то огромное текстовое поле?

Должен ли я просто пропустить mongo alltogether и ввести поля в другую базу данных?

+1

Если вам нужны сложные функции поиска полный текст (или если полнотекстовый поиск является основной целью вашей приложение), я бы рекомендовал использовать специализированную поисковую систему полного поиска, такую ​​как поиск эластичных изображений или solr. Однако вы можете [индексировать несколько текстовых полей] (http://docs.mongodb.org/manual/tutorial/create-text-index-on-multiple-fields/) в MongoDB. – wdberkeley

+0

Cool. Сейчас будет использовать монго и попробовать как можно скорее два других варианта – FabioCosta

ответ

0

Имея используя свое решение о производстве в течение некоторого времени у меня есть следующие выводы:

  • Сохраняя все массивы на одном поле для индексации даже для больших наборов данных достаточно хорошо;
  • специализированный текстовый движок, Altough увеличивая стек технологий, является более мощным и масштабируемым и я бы рекомендовал ElasticSearch
Смежные вопросы