Как искать внедренные документы mongoid с солнечным пятном SOLR? - PullRequest
3 голосов
/ 12 сентября 2011

Кто-нибудь знает, как индексировать и искать внедренные документы с sunpot_mongoid ?

Вопрос был задан в sunspot_mongoid Issues , но пока не имеет решения.

Ответы [ 2 ]

5 голосов
/ 12 сентября 2011

Только что попробовал.Это взлом, но он работает для поиска встроенных документов и возврата родительского документа, который его содержит.Это то, что вы хотите?Если так, сделайте это тогда.Определите метод, который возвращает нужные вам встроенные поля в виде массива, а затем индексируйте этот массив.

Предположим, у вас есть класс Company, со встроенными отделами

searchable do
  # Your regular index
  # ...
  text :company_departments
end

def company_departments
  departments.map(&:name).join(" ")
end

, переиндексация и попытка поиска.

1 голос
/ 28 февраля 2012

Вы также можете включить блок, который возвращает текст, который вы хотите индексировать, прямо в блоке с возможностью поиска. Например:

searchable do
    text :innerdoc do
      innerdocs.map { |i| i.title + ' ' + i.description }
    end
end

Это берет заголовок и описание из встроенного массива "innerdocs" и добавляет его в индекс для основного документа.

Документация по солнечным пятнам имеет наилучшую информацию о синтаксисе для блока "searchable": http://outoftime.github.com/sunspot/docs/

...