1

Sunspotのドキュメントには、次のように書かれています。

オブジェクトの「スキーマ」(検索可能なブロックのコード)に変更を加える場合は、変更がSolrに反映されるように、すべてのオブジェクトのインデックスを再作成する必要があります。

この手順に従わないとどうなりますか?

具体的には、Websolrにかなり大きなインデックスがあり、インデックスを再作成せずにブールフィールドを追加するとどうなりますか?

ブールフィールドの値でフィルタリングできるようにしたいのですが、または値trueでフィルタリングする必要はありません。これは機能しますか、それともインデックスを再作成するためのこの警告に常に従う必要がありますか?falsenil

4

1 に答える 1

3

あなたの場合、フィールドを追加し、データにインデックスを付けなくても、それは機能します。
ただし、既存のデータにはフィールドの値がありません。
挿入された新しいドキュメントにのみ値があります。
値に基づいてドキュメントを確実にフィルタリングでき、既存のドキュメントのフィールドの値はnilになります。

通常、それはあなたが何を変えるかに依存します。

フィールドタイプのクエリ時間分析を変更する場合は、インデックスを再作成する必要はありません。単純な再起動またはコアのリロードが機能します。

すべてのドキュメントのフィールドの値が必要な場合は、スキーマを変更すると、コレクションのインデックスを再作成する必要があります。
フィールドタイプを変更した場合、フィールドのタイプに対してインデックス作成時に実行される分析が異なるため、コンテンツのインデックスを再作成する必要があります。
インデックスを再作成しない場合、フィールドに対して実行されるクエリ時間分析は、インデックスが作成されたものとは異なり、一致するものは見つかりません。

于 2012-09-14T11:02:27.143 に答える