5

私は新しい Search API を試し始めました。デモはスムーズに実行されていますが、検索の世界の部外者であることについて、まだ混乱している点がいくつかあります。

まずはドキュメントの作り方です。明らかに、各行をドキュメントにハードコードすることはできませんが、他に何ができますか。ユーザー クラスがあるとします (私は Java を使用していますが、Python はここでは違いがないと思います)。ユーザーの情報をドキュメントに追加し、アドレスのフィールドに対して全文検索を行うことができます。 .

class User {
   String username;
   String password;
   String address;
}

私のデータストアには、10000 個のインスタンスを持つこのエンティティがあります。このドキュメントを作成する必要がある場合は、作成する必要がありますか?

ステップ 1: データストアから 10000 インスタンスを取得する

ステップ 2: 各ユーザー エンティティを繰り返し処理し、10000 個のドキュメントを作成する

ステップ 3: 10000 個のドキュメントすべてをインデックスに追加すると、検索できるようになります

上記の 3 つの手順が間違っている場合は、修正してください。

その場合、後で新しいユーザーが登録するたびに、新しいドキュメントを作成してインデックスに追加する必要がありますか?

4

1 に答える 1

6

残念ながら、私はそれほど遊んでいません。いくつかのことを学びました。

  • 最初にそれを実装したとき、私は(あなたが説明したように)多くのドキュメントも作成しなければなりませんでした. しかし、締め切りの例外に遭遇し続けました。そのため、すべての古いレコードのドキュメントを作成するためにタスク キューを使用することになりました。

  • 検索ドキュメントとデータストア エンティティの間に相互参照を作成することを忘れないでください。そのため、ドキュメント レコードを簡単に更新できます。検索結果から一致エンティティを取得します。

相互参照のために、データストア モデルに新しいプロパティを追加します。たとえば、search_document_idどこに保存するかdoc_idという名前です (すべての doc_id の前にデータストア モデル名を付けました)。そして、エンティティ キーを文字列として含むドキュメントにテキスト フィールドを追加します。

しかし、一言で言えば、あなたは正しいと言えます。

于 2012-06-07T07:33:08.147 に答える