0

既存のウェブサイトにGoogleカスタム検索を実装するための一連の(承認された)要件とすでに承認されたソリューションが与えられました。

このウェブサイトには次のものがあります。

  • ジョブズ

    • カテゴリー1
    • カテゴリー2
    • カテゴリー3
  • 通常のページ

    • カテゴリー1
    • カテゴリー2
    • カテゴリー3

検索機能の要件は、人々がチェックボックスを使用して結果をフィルタリングできることです。したがって、以下が当てはまる場合:

[x] Category 1
[ ] Category 2
[x] Category 3

その場合、カテゴリ2のページは表示されません。ただし、次のページもあります。

[x] Show jobs only

Googleカスタム検索を介してこれを実装するにはどうすればよいですか?PageMapタグの使用などについて読んだこと<meta>がありますが、これらに基づいて結果をフィルタリングする方法がわかりません。

私はここを見ました:Googleカスタム検索API-並べ替え/フィルター

しかし、それは私の懸念に答えていないようです。私はまだドキュメントで少し迷っています。

このようなことは可能ですか?誰かがもっと徹底的な例へのリンクを持っていますか?

インメモリフィルタリングを試してみようと思ったのですが、チェックボックスがオンになっているときにGoogleがたまたま10件の結果で1件のジョブページを返した場合、ユーザーはそのページで1件の結果しか取得できません。[x] Show jobs only

私はカスタム検索エンジンを使用してXMLベースの結果セットに傾倒しています。しかし、それを変更する必要がある場合は、提案を受け付けています。

アドバイスをいただければ幸いです。

4

1 に答える 1

10

私はこれを理解することができました...多くの試行錯誤によってのみ。

まずPageMap、XML 応答の要素の例:

<PageMap>
    <DataObject type="metatags">
        <Attribute name="creationdate" value="D:20100902144455+10'00'"/>
        <Attribute name="creator" value="Adobe InDesign CS5 (7.0)"/>
        <Attribute name="moddate" value="D:20100902144510+10'00'"/>
        <Attribute name="producer" value="Adobe PDF Library 9.9"/>
    </DataObject>
</PageMap>

Google のフィルタリングでは、スペースや特殊文字などで区切られた個々の単語のみが一致します。そのため、「CS5」を含む「creator」を検索する場合は、次のクエリ文字列を使用します。

?q=My+Search+Text+Here+more:pagemap:metatags-creator:CS5
                                    ^^^^^^^^ ^^^^^^^
                                      type    name

上記の「type」と「name」はDataObjectAttribute要素の属性名を参照します。最後の部分は、フィルタリングする単語です。

これで、次の内容をカテゴリ 1 のページにダンプできるはずです。

<PageMap>
    <DataObject type="metatags">
        <Attribute name="category" value="Category1"/>
    </DataObject>
</PageMap>

または..仕事の場合:

<PageMap>
    <DataObject type="metatags">
        <Attribute name="IsJobPage" value="Yes"/>
    </DataObject>
</PageMap>

..そして、次のようなクエリを使用します。

?q=My+Search+Text+Here+more:pagemap:metatags-category:Category1,Category3
?q=My+Search+Text+Here+more:pagemap:metatags-IsJobPage:Yes

最初の例は、値「Category1」または「Category3 」を含む「category」というメタ タグ名を持つすべてのページを返します。

うまくいけば、この答えが誰かが髪を引き裂くのを防ぐ..私がほとんどやったように。

于 2013-02-06T01:13:26.147 に答える