2012-02-12 2 views
2

У меня есть приложение, построенное на Rails3 и разговаривающее с MongoDB через Mongoid. Я не хочу искать на одной из моих моделей, и это встроенные дети, использующие Sphinx.Можно ли индексировать внедренные объекты в MongoDB с помощью Sphinx?

Я использую mongoid-sphinx камень для поиска настройки индексов как этот

class Foo 

    include Mongoid::Sphinx 
    field :title, :type => String 

    embeds_many :bars 

    search_index(:fields => [:title]) 

end 

Можно также определить индекс на этой вложенной модели bar? Предположим, что bar имеет поле строки :content.

+1

Я думаю, что его пока невозможно. Мне пришлось бы либо хранить Bars в виде отдельных коллекций с использованием ссылочных ключей, либо развить этот камень и написать мою собственную реализацию xml-pipe – Johny

ответ

0

С r3518 есть поддержка атрибутов json. Пожалуйста, проверьте https://code.google.com/p/sphinxsearch/source/detail?r=3518 и особенно /trunk/test/test_206/test.xml о том, как его можно использовать. В настоящее время поиск в объектах json является экспериментальным (пока не поддерживает подпроекты). Не уверен, что эти новые attrs работают из коробки с рубиновым камнем.