Google カスタム検索 API との統合を作成しました。クエリはかなり単純に見えますが、予期しない結果が返されます。私のクエリはこのガイドに基づいています: https://developers.google.com/custom-search/docs/structured_search
私のサイトでは、pagetypeid(フィルタリングしたい)とページランキング(ソートしたい)の情報を含むページマップを作成しました。これらのページは Google によってインデックス化されており、単純なクエリを実行しようとすると、json オブジェクトに正しい値が含まれています。ie: ブラウザでこれをテストすると:
https://www.googleapis.com/customsearch/v1?key=[myKey]&cx=[myCx]&q=*&alt=json
q=* (すべて) を検索していることに注意してください。
次のようなページマップ オブジェクトを含むアイテムのリストを受け取ります。
"ページマップ": {
"page": [
{
"pagetypeid": "12",
}
],
"pageranking": [
{
"score": "5"
}
],...}
pagetypeid: 12,3 およびその他の範囲のオブジェクトがあります...
フィルタリングまたはソートを追加しようとすると、奇妙な部分が発生します。
上記のクエリを次のように変更すると:
https://www.googleapis.com/customsearch/v1?key=[myKey]&cx=[myCx]&q= *+more:pagemap:page-pagetypeid:3 &alt=json
最初のクエリで pagetypeid:3 のヒットが多数表示されたにもかかわらず、Google からの結果にはヒットがありません。
同じクエリを試して、pagetypeid:3 から pagetypeid:12 に変更すると、期待どおりにヒットします。
これらのクエリの扱いが異なるのはなぜですか?
並べ方も同じです。* をスコア順で検索すると 0 が返されますが、q=test+sort... で検索するとヒットします。さまざまなパラメーターを Google に渡す方法の組み合わせですか?
編集: これは自分のクエリ以外のトラフィックがないテスト サイトであるため、インデックスが作成される前にリクエストからの応答がキャッシュされていたため、クエリが古い結果を返す可能性はありますか?
また、アクティビティが多いサイトにこの統合をインストールすると、(Google による) インデックスがより頻繁に更新され、その結果、これらの「バグ」が表示されなくなる可能性はありますか?
前もって感謝します。