私はスフィンクスを考える上で問題に直面しています
私は次のテーブル構造を持っています
title => varchar
desc => varchar
is_deleted => boolean
ここに私の denine_index があります
define_index do
indexes title, :sortable => :insensitive
has :is_deleted, :type=>:boolean
where "is_deleted = false"
set_property :delta => true
end
ここで、トピックを編集して編集した名前で検索するとトピックが取得され、古い名前で検索すると同じトピックが取得されます。たとえば、以前のトピックの名前が"Foo"で、名前を"Foo" から "Woo"に変更した場合、 "Woo" を検索すると "Woo"が返されますが、"Foo" を検索すると再び"Woo" が返されます。さらに、is_deleted => true を設定して「Woo」を検索して も何も得られませんが、 「Foo」を検索すると. なぜそれが起こっているのか理解できませんか?delta=true の新しいインデックスを作成する際に、Sphinxは古いインデックスを削除しませんか。
再びスフィンクスを再構築すると、そのような問題は発生せず、予想どおりすべてのデルタが false に設定されます。