Мышление Sphinx Delta Index не работает

Я добавил дельта-столбец в мою таблицу:

class AddDeltaIndexToCimgs < ActiveRecord::Migration
  def change
    add_column :cimgs, :delta, :boolean, default: true, null: false
  end
end

Я мигрировал

Я также добавил define_index:

define_index do
  indexes search_cache
  has :approved
  set_property delta: true
end

И я побежал грабли задачи

rake ts:stop
rake ts:index
rake ts:start

Или же rake ts:rebuild

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

Для их поиска я использую следующее:

Cimg.search query, with: {approved: true}

И да, каждый Cimg одобрен и имеет кучу вещей в search_cache, а новые отмечены delta=1 в базе данных. Я дважды проверил.

Я проверил папку db/sphinx и много файлов с именем cimg_delta созданы.

Вот сгенерированный файл конфигурации: http://pastebin.com/z0fHr43k

Sphinx version: 2.0.7
Thinking Sphinx gem version: 2.0.5
Rails version: 3.1.0.rc8
Ruby version: 1.9.2p290 

Есть идеи, почему это может происходить?

1 ответ

Просто проверка работоспособности, но в вашем файле config / sphinx.yml вы делаете

    development:      
      min_prefix_len: 2  

      indexed_models:
        - Article
        - Match
        - Player
        - Team
        - Group
        - Tournament
        - Ground
        - User

Убедитесь, что вы добавили все новые индексированные модели, иначе мы думаем, что sphinx будет индексировать только те, которые указаны в каждой среде. Я просто добавил define_index в модель User и не мог понять, почему он не индексируется при запуске rake ts:rebuild Я забыл добавить indexed_models: user в shinx.yml

Надеюсь, это полезно, спасибо, Дейв

Другие вопросы по тегам