問題タブ [gae-search]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
189 参照

google-app-engine - データストア挿入の地理をモデル化する方法は?

都市と地域を持つ必要がある挿入を作成できるユーザーを持つプリミティブ データ モデルがあります。複数の都市に関連する記事を準備する (たとえば、2 つ以上の都市で同じ製品を提供する場合、記事が接続されている都市ごとに記事が重複するのではなく、都市のリストを含む 1 つの記事になるようにするため)に)。

それで、ストレージとビューを作成することはできましたが、データ モデルは良くありません。

インサートには次のようにコーディングされています。

これは冗長性を生成し、あまりきれいではありません (フィールドにリストを保存したため、1NF ではありません)。

ここに画像の説明を入力

検索 API のインデックスを作成するとき、今のところ 1 つの都市しか使用していませんが、都市のリストと地域のリストを処理する予定です (ただし、都市が 2 つの地域に存在することはあり得ないため、都市リスト以外はすべて冗長ですが、検索やビューでの長いルックアップを避けるために冗長性を節約します)。参照プロパティとキーを正しく使用したかどうか、代わりに NDB モデルを使用した方がよいかどうか疑問に思います。

0 投票する
1 に答える
287 参照

google-app-engine - appengine 検索インデックスの結果を関連性で並べ替えるにはどうすればよいですか?

Google App Engine のテキスト検索 API を使用して、ユーザーが単語フィールドを含むドキュメントを検索できるようにするプロジェクトに取り組んでいます。ドキュメントによると、「ドキュメント内の用語の頻度に基づいてスコアを割り当てる」MatchScorer を使用して並べ替えています。

ユーザーが「ビジネス プロモーション」などのクエリを入力すると、これを次のようなクエリ文字列に変換しますwords:business OR words:promo。これにより、「ビジネス」と「プロモーション」の両方の単語を含むドキュメントが返されてから、単語の 1 つだけを含むドキュメントが返されると予想していました (ドキュメントには、ドキュメント内の用語の頻度に基づいてスコアを割り当てると記載されているため)。ただし、両方を含むドキュメントの前に、単語の 1 つだけを含む結果がよく見られます。

RescoringMatchScorerを使用してクエリを実行しようとしましたが、このスコアラーを使用しても同じ問題が発生します。

AND 検索語と OR 検索語のクエリを別々に実行することを考えましたが、ユーザーが 2 つ以上の検索語を入力すると、多くのクエリが必要になります。たとえば、「高度なビジネス ソリューション」を検索した場合、すべてのベースをカバーするには次のようなクエリが必要です。

関連性の低い結果の前に、より関連性の高い結果 (つまり、より多くの検索語の一致) を返す検索を実行する方法についてのヒントはありますか?

0 投票する
1 に答える
130 参照

python - appengine 検索 API でドキュメント言語を参照するにはどうすればよいですか?

ドキュメントをインデックスに追加してインデックスを検索することはできますが、言語でフィルタリングするにはどうすればよいですか? たとえば、英語のドキュメントのみですか?

次のコードで検索します。

しかし、英語のみのドキュメントを検索するにはどうすればよいでしょうか?

0 投票する
1 に答える
264 参照

google-app-engine - 「distance()」のSortExpression Google App Engine検索のデフォルト値は何ですか?

私はそのようなSortExpressionを持っています:

何のためにあるべきdefault_valueですdistance()か?

現在sys.float_info.maxSDK で動作しますが、本番環境ではエラーが発生します:

0 投票する
2 に答える
260 参照

google-app-engine - Google App Engine プロダクション検索で Unicode 値を使用してアトム フィールドをクエリするにはどうすればよいですか?

Google App Engine 検索を使用してテキスト検索を作成しました。

SDK では、アトム フィールドでこのようなクエリをテストしました。

本番環境では同じクエリを実行しますが、同じデータでは機能しません。

アトムフィールドでユニコードクエリを実行するにはどうすればよいですか?

Google App Engine 検索でユニコードを使用することは可能ですか?

0 投票する
1 に答える
620 参照

python - Google App Engine と Search API による近接検索

Python2.7、Google App Engine 1.9.*、および Search API を使用しています。位置情報対応の興味のあるポイントを保存します。ここで、特定の場所から特定の範囲内にあるすべての関心のあるポイントを返す GET を実装したいと考えています。

Google Search API Basics オンライン ドキュメントで見つけた例では、クエリ結果の並べ替えについて言及しています。この同じ例は、 github リポジトリ appengine-search-python-javaで完全なソース パッケージとして見つけることができます。クエリ文字列が何であれ、見つかった関心のあるポイント (この例では Stores) は、最も近い順にリストされます。

返される値を特定の項目数で制限する方法の例もあります。 より複雑な検索 API クエリ チュートリアル、セクション クエリ オプション

ただし、私の使用例では、アイテムの数ではなく距離をカットオフする必要があります。誰かがその例を持っていますか?

0 投票する
1 に答える
52 参照

java - キーを使用してデータストアとドキュメントをリンクする方法

私はすでに多くの時間を費やしてきたので、誰かがこの問題を解決するのを手伝ってくれたらとても感謝しています.

私のアプリケーションのフロントエンドは、従業員データをサーバー エンドに送信します。サーバー エンドは、Employee オブジェクトを作成し、データをデータストアに保存します。私のアプリケーションは、役職、会社、および jobDesc のキーワード検索機能を提供するため、Search Api を使用しています。

問題は、完全なデータを保存するためにデータストアを使用し、検索可能なデータを保存するためにドキュメントを使用したいということです。データストアをドキュメントにリンクするにはどうすればよいですか? 従業員のキーをドキュメントIDとして設定すれば実現できることはわかっていますが、問題は保存されているデータのキーをどのように取得するかです。その時点でキーを持っているため、明らかに nullPointerException を返す e.getKey() を使用してキーを取得しようとすると。

データストアに保存されているすべての従業員データを読み取り、それを使用してドキュメントを作成し、従業員のキーをドキュメント ID として設定することでこれを実現できますが、データがアプリケーションのフロントエンドから受信されるときにドキュメントを作成したいと考えています。

0 投票する
1 に答える
76 参照

google-app-engine - GAE-Search ドキュメントのフィールド名の長さはデータ サイズ (したがってコスト) に影響しますか?

GAE-Search は、フィールド名を各ドキュメントまたは最上位に保持しますか? 各ドキュメントでフィールド名を保持 (および送信) する場合、ストレージとネットワークのコストを削減するためにフィールド名の長さを最小限に抑える必要があります。

0 投票する
2 に答える
498 参照

google-app-engine - GAE で検索ドキュメントを削除する際の一時的なエラー (一貫性)

GAE アプリケーションの 1 つで一貫したエラーが発生しています (スタック トレースは以下にあります)。誰がこれを引き起こしているのか知っていますか? 一時的なエラー (短命のエラーである必要があります) がスローされますが、このエラーは一貫して発生します。

スタックトレース

com.google.appengine.api.search.DeleteException: 一時的なエラーです。RPC の期限を超えました。com.google.appengine.api.search.IndexImpl$2.convertException(IndexImpl.java:217) で com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:94) で com.google.appengine. api.search.FutureHelper.getInternal(FutureHelper.java:73) com.google.appengine.api.search.FutureHelper.quietGet(FutureHelper.java:32) で com.google.appengine.api.search.IndexImpl.delete( IndexImpl.java:480)

コード

ありがとう、マイク