Tune in to Trailblazers Innovate for Salesforce product news,
demos, and latest roadmaps. Register here.
close
進行状況の追跡を始めよう
Trailhead のホーム
Trailhead のホーム

一般的な使用事例での検索の作成

学習の目的

この単元を完了すると、次のことができるようになります。

  • 1 つのオブジェクト内で検索する方法を理解する。
  • 複数のオブジェクト内で検索する方法を理解する。
  • カスタムオブジェクト内で検索する方法を理解する。

はじめに

あなたが活気ある会社 Cloud Kicks の有能な新人開発者であるとします。Cloud Kicks は、非常に快適かつスタイリッシュで環境に優しいカスタムスニーカーを、トレイルランナー向けにデザインおよびパーソナライズして作っています。同社の靴は、プロのランナーや、のんびりした日曜日とは 25 キロのトレイルランのことだと思っているような週末の猛者たちに人気があります。

あなたは、顧客向けのオンライン知識ベースと Cloud Kicks 従業員向けの社内商品 Web サイトを作成するように指示されました。すべてのデータは、Cloud Kicks Salesforce 組織から取得します。カスタマイズされた検索ソリューションが必要な仕事のようですね。このシナリオを使って、カスタマイズされた検索ソリューションのいくつかの一般的な使用事例について学習しましょう。特定の使用事例を使用する理由といくつかの例について説明します。

さっそく始めましょう!

1 つのオブジェクト内での検索

Cloud Kicks は成長中の新興企業で、マーケティング部門は認知度を高めようと努力しています。いくつかのキャンペーンが開始され、それらは Salesforce を介して追跡されています。マーケティングと営業は、あなたが作成中の社内商品 Web サイトで、キャンペーンのみを検索する方法を求めています。1 つのオブジェクトの検索は、ユーザがすばやく 1 つのレコードタイプを検索する必要がある場合に最適です。そのような場合には、関係のないレコードをより分ける手間をかけたくないためです。

SOSL を使用して 1 つのオブジェクト内で検索するには、単にリクエスト内でオブジェクトを指定するだけですので、非常に簡単です。

FIND {term} RETURNING ObjectTypeName

この例では、term がユーザが入力する語句です。ObjectTypeName は、指定された sObject のみを含むように検索結果を制限します。したがって、ユーザが 2016 年 3 月のメールキャンペーンを検索しようとすると、要求は次のようになります。

FIND {march 2016 email} RETURNING Campaign

次の単元では、RETURNING の優れた機能と、最良の結果を得るために検索を絞り込む方法について説明します。

複数オブジェクト内の検索

Cloud Kicks は顧客を大切にしています。そこで、ユーザが質問をしたり情報を共有したりを 1 か所でできる Web サイトを構築したいと考えています。含まれる情報には、動画、記事、質問、PDF など、複数の種別があります。ただし、ユーザにとっては、どの種別のコンテンツが表示されるかはどうでも良いことです。大切なのは、必要な情報を早く手に入れられることです。このような場合に複数オブジェクト検索が役立ちます。レコードタイプがユーザにとって重要でないため、複数のオブジェクトを同時に検索できます。あるいは、実はユーザが、結果に複数のオブジェクト種別が表示されることを望んでいる場合もあるでしょう。

幸いにも、SOSL では別のオブジェクトを追加することは非常に簡単で、カンマ区切りリストを追加するだけです。

FIND {term} RETURNING ObjectTypeName1, ObjectTypeName2, ObjectTypeNameYouGetTheIdea

例のシナリオに戻ると、Cloud Kicks のある顧客が、リサイクル素材で作られた靴はあるだろうかと考えたとします。その場合は、オンライン知識ベース検索で、検索語に一致する複数のオブジェクトが結果に返されるように設定します。

FIND {recycled materials} RETURNING Product2, ContentVersion, FeedItem

RETURNING 要素でオブジェクトを指定しなければ、結果に表示されないことを忘れないでください。

カスタムオブジェクト内の検索

Salesforce には、お客様が使用できる標準オブジェクトが多数ありますが、Cloud Kicks はカスタムシューズの会社ですから、カスタムオブジェクトが必要になることにもうなずけます。特にあなたが興味を持っているのは、最新のカスタムオブジェクトの Merchandise (商品) です。このオブジェクトには、Cloud Kicks の全商品のスタイル、ID、色、素材、名前、価格に関する情報が含まれています。営業、配送など、Cloud Kicks 社内の多くのユーザがこの情報にアクセスする必要があります。

そこで、構築中の社内商品 Web サイトに、Merchandise (商品) カスタムオブジェクトのみを検索する検索ボックスを追加します。SOSL 検索でカスタムオブジェクトを指定する特別な方法があるわけではありません。他の標準オブジェクトと同じように sObject 名を含め、__c サフィックスを追加します。

FIND {pink hi\-top} RETURNING Merchandise__c

SOQL

SOSL について説明してきましたが、SOQL はどうでしょうか? SOQL は、1 つのオブジェクトの検索で、検索する項目がわかっていて、検索語が項目に完全に一致し (部分一致や順不同一致は含みません)、数値、日付、またはチェックボックス項目データが必要で、数件の結果のみを探している場合に使用します。(SOQL を使用すべき場合の完全なリストについては、最初のモジュールを参照してください。)

このモジュールですでに取り上げた一般的な使用事例を見れば、SOQL の使用を避けるべき場合が多少わかるでしょう。次に例を示します。

  • 1 つのオブジェクトの検索 — SOQL は、データがどの項目に存在しているかがわかっていている場合に使用できます。「march 2016 email」 に対して項目を指定しなかったため、SOQL よりも SOSL 検索が適しています。一般的に、クエリで対象項目を指定しない場合は、SOSL を使用します。
  • 複数オブジェクトの検索 — SOQL では互いに関連付けられている複数のオブジェクトからのみデータを取得できるため、SOQL での複数オブジェクトの検索は制限されています。シナリオでは、オブジェクトは関連していなかったため、SOSL が適しています。
  • カスタムオブジェクトの検索 — 1 つのオブジェクトの検索の場合と同じように、SOQL でもカスタムオブジェクトを検索できます。ただし、検索語「pink hi-top」(ピンクのハイトップ) のデータがどの項目に存在しているかを指定しませんでした。さらに、SOQL では、インデックスではなくデータベースに対して検索を行います。そのため、「pink sneaker hi-top」(ハイトップのピンクのスニーカー) を実際に含むレコードがあったとしても、SOQL では適切な結果を返すことができません。

リソース