5

CMS では、注文を伴う通常の NDB クエリを使用して、顧客のリストが取得されます。名前、会社名、電子メールでフィルタリングできるようにするために、いくつかの (場合によっては多数の) インデックスを作成します。状況は理想的ではありませんでしたが、実行可能でした。

現在、(実験的な) Search APIがあります。データストア (または NDB) とは関係がないようですが、私のデータは既にそこにあります。

全文検索を使用し、同時に複数のフィールドにフィルタを適用したいのですが、データをデータストアに保持し、データの一部を Documents for the Search API に複製する必要がありますか? または、検索例が示すように、データストアを完全にスキップします。

4

1 に答える 1

6

推奨される実装方法はよくわかりませんが、Search APIは、主に追加の手動管理インデックスとして使用されるように設計されているようです。すべてのデータを検索APIに保存することは、ほとんどの状況で理想的ではありません。フィルタリングや検索を行う必要のないフィールドを使用して検索APIインデックスのサイズを簡単に拡大できるため、また、定期的な書き込みが必要な状況。

私の個人的な推奨事項は、すべてのデータをNDBに残し、Search APIを使用して関連する検索可能なデータを含むドキュメントを作成するクラスを設計し、データストアへの書き込みが行われるたびにSearch APIバージョンを更新することで、2つのメディア間の一貫性を維持することです。バージョン(または、データを大量に書き込む場合は、tasks / cronまたは同様のシステムを使用します)。検索APIの結果とデータストアデータを手動で結合すると、プロセス全体が大幅に遅くなるため、関連データの検索APIドキュメントでフィルタリングするときにUIに表示するデータを保存する必要があります。

于 2012-11-21T08:34:57.070 に答える