0

私はスフィンクスを考える上で問題に直面しています

私は次のテーブル構造を持っています

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 に設定されます。

4

1 に答える 1

0

次のようなデルタ インデックスに存在することがわかっている場合は、 sphinx sql_query_killist を使用してメイン インデックスから結果を削除します。

于 2013-01-19T11:08:37.587 に答える