Мышление 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
Надеюсь, это полезно, спасибо, Дейв