2010-01-13 2 views
4

Я использую sphinx для поиска по 2 моделям вместе со своими ассоциациями. Я использую дельта-индексацию. Все отлично работает в моей dev-блоке в режиме dev (Ubuntu). Тем не менее, при создании промежуточной сборки, когда я создаю новые записи, мне нужно снова создать индекс, чтобы сделать вновь созданные записи доступными для поиска. Даже странно, что когда я создаю записи, используя скрипт/консоль, они, похоже, индексируются и доступны для поиска.Мышление Sphinx не индексирование недавно добавленных записей

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

Я проверил разрешения, думая о версии сфинкс-гем, и все они выглядят нормально. Что может быть неправильным?

EDIT

Я также проверил http://freelancing-god.github.com/ts/en/common_issues.html#deltas но это не похоже на работу. И да, сервер работает на phusion-пассажире.

+0

Как выглядят ваши блоки индекса в ваших моделях? почему вы устанавливаете delta в false (как это важно для ассоциаций?). delta должно быть правдой для записи, чтобы получить дельта индексированный –

+0

Извините, я имею в виду, что для дельтах установлено значение true для обновлений ассоциации. Это, безусловно, проблема с фьюжн-пассажирами. – Chirantan

+0

Вы уверены, что это проблема с фьюжн-пассажиром? Вы пробовали делать рельсы и seing, если вы можете получить результаты поиска? У меня есть аналогичная проблема, у меня также есть настроение с использованием phusion, но я также замечаю, что при поиске в консоли rails через экземпляр Modelname (или что-то еще) всегда возвращают []. Я также замечаю, что в выводе rake ts есть строка: rebuild «skipping non-plain index». Дайте мне знать, если это поможет ... –

ответ

1

У меня было что-то вроде этой точной проблемы, и я думаю, что это проблема разрешения проблемы.

Просмотреть мое сообщение here.

Каким-то образом, я думаю, что обновленная версия мышления-sphinx была установлена ​​на моей машине через жемчужину, и я все еще ее установил через apt-get. Я очистил его с помощью apt, а затем снова установил его. Впоследствии я обнаружил, что у меня есть специальное поле в таблице, которое не должно использоваться:: type, и я редактировал миграцию, чтобы удалить этот тип и добавить его снова как другое имя. Тогда это сработало. Вы должны опубликовать свой соответствующий код, для моделей, действия контроллера, вызывающего поиск, любой заметный вывод при вызове любой из команд рейка. Попробуйте удалить драгоценный камень, а затем переустановить его. Затем удалите apt-пакет и переустановите его.

+0

Мне очень жаль Адама, вопрос слишком стар для меня, чтобы вспомнить, что именно не так. Я должен был опубликовать решение, которое сработало для меня тогда. :-( – Chirantan

+1

Да, я тебя понимаю Ну, может быть, ты когда-нибудь вспомнишь. Если это так, было бы очень полезно помочь сообществу поделиться им! –

+1

Несомненно, я отправлю его, если я его запомню. – Chirantan

Смежные вопросы