tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:SOQLとSOSLの違い

SOQLが一つのクエリで一つのオブジェクトを検索できるのに対して、SOSLは一つのクエリで複数のオブジェクトを検索できます。

開発者ガイドによるとこんな感じ。

f:id:tyoshikawa1106:20140824162813p:plain


例えばSalesforce標準のグローバル検索はSOSLを使った検索になります。


「株式会社 セールスフォース・ドットコム」を検索したい場合、SOQLなら「株式会社 セールスフォース・ドットコム」という条件で検索する必要があります。LIKEをつかったあいまい検索なら「株式会社 セールスフォース」や「セールスフォース・ドットコム」でも検索できますが、「セールス ドットコム」では検索できません。


SOSLの場合は一致している部分があるレコードを検索するので「セールス ドットコム」で「株式会社 セールスフォース・ドットコム」を検索することができます。

f:id:tyoshikawa1106:20140824163544p:plain


このようにSOQLとSOSLは検索時の用途と取得できる結果が異なる仕組みになっています。


※※補足※※
グローバル検索はオプションで完全一致での検索を指定することで同じ値のみ取得できるようになっています。

f:id:tyoshikawa1106:20140824163729p:plain


また、SOSLには検索時の条件が最低2文字以上必要なルールもあります。

f:id:tyoshikawa1106:20140824164022p:plain