SOSL ã¯ãšãªã®äœæ
åŠç¿ã®ç®ç
ãã®åå ãå®äºãããšã次ã®ããšãã§ããããã«ãªããŸãã
- SOSL ãä»ã®å
šææ€çŽ¢ãšã©ã®ããã«ç°ãªãããçè§£ããã
- åºæ¬ç㪠SOSL æ§æãç¹å®ããã
- SOSL ãš SOQL ã®çžéç¹ã説æããã
- è€æ°ã® sObject ã«ããã£ãŠæ€çŽ¢ãè¡ã SOSL ã¯ãšãªãäœæããã
SOSL ãšã¯
åã®åå ã§ã¯ SOQL ã玹ä»ããSOQL ã䜿çšã㊠sObject ãé¢é£ããŒãã«å ã®ããŒã¿ãç §äŒããæ¹æ³ãåŠç¿ããŸãããè€æ°ã® sObject ã«ããã£ãŠããã¹ãããŒã¹ã®ã¯ãšãªãå®è¡ããã«ã¯ãSalesforce ã®å šææ€çŽ¢ãªãã·ã§ã³ã§ãã SOSL (Salesforce Object Search Language) ã䜿çšã§ããŸãã
.NET éçºè ã®çããã¯ãMicrosoft SQL Server ã§äœ¿çšã§ããå šææ€çŽ¢æ©èœ (MS FTS) ã«æ £ããŠãããããããŸããããŸããå ã® Java ããŒãžã§ã³ãã C# ã«ç§»æ€ããã Lucene.Net ãšåŒã°ãã人æ°ã®ããæ€çŽ¢ãšã³ãžã³ã©ã€ãã©ãªã«ã銎æã¿ããããããããŸããã
è¯ããæªãããSOSL ã¯ãããã®å šææ€çŽ¢ææ³ãšã¯ç°ãªããŸããæã倧ããªéãã¯ãã€ã³ããã¯ã¹ã®èšå®ãšç®¡çã«å¿ èŠãªäœæ¥ã§ããSOSL ã®åºç€ã«ã¯ãªãŒãã³ãœãŒã¹ã®æ€çŽ¢ããã³ã€ã³ããã¯ã¹åãšã³ãžã³ã§ãã Lucene ã䜿çšãããŠããŸãããèšå®æžã¿ã§ããããããŠãŒã¶ãŒã¯ã€ã³ã¹ããŒã«ãèšå®ã«ã€ããŠå¿é ããå¿ èŠããããŸãããã€ã³ããã¯ã¹ã®ç®¡çãå¿ èŠãããŸãããå®éãã»ãšãã©ã®å Žåãæ€çŽ¢ã€ã³ããã¯ã¹ãã©ã®ããã«äœ¿çšããããã«ã€ããŠãŠãŒã¶ãŒã¯å¶åŸ¡ã§ããŸãããããã¯ãSOSL ã¯ãšãªã®èšè¿°ãç°¡åã«ãªãããšãæå³ãããããè¯ãããšã§ãã
ãã ãã.NET éçºè ã¯ã³ãŒããæ¹åããã倿Žãããã§ããããšã奜ã¿ãŸããèšå®ãã€ã³ããã¯ã¹ãã»ãšãã©å¶åŸ¡ã§ããªããšèããšãå°ãäžå®ã«æãããããããŸãããå¶åŸ¡ã§ããç¯å²ãå°ãªããŠããSOSL ã¯ãšãªãš SOQL ã¯ãšãªã®äž¡æ¹ã§ã¯ãšãªããã©ãŒãã³ã¹ãæ¹åããæ¹æ³ã¯ãããŸãã®ã§ããå®å¿ãã ããããããã®æ¹æ³ã«ã€ããŠã¯åŸã»ã©è©³ãã説æããŸãããããã§ã¯ SOSL æ§æã®éãã«ã€ããŠèŠãŠã¿ãŸãããã
SOSL ã¯ãšãªã®äœæ
MS FTS ã«ç²ŸéããŠããã°ãCONTAINS ã¹ããŒãã¡ã³ããŸã㯠FREETEXT ã¹ããŒãã¡ã³ãã䜿çšãã SELECT ã¯ãšãªãèšè¿°ããå¿ èŠãããããšããåç¥ã§ãããã匷å㪠CONTAINS æ€çŽ¢ã«ã¯å€ãã®ããªãšãŒã·ã§ã³ããããå®å šäžèŽããããŸãäžèŽã®æ€çŽ¢ãããã³å¥ã®èšèã«è¿ãèšèã®æ€çŽ¢ãè¡ãããšãã§ããŸãã
SOSL ã䜿çšããæ€çŽ¢æ§æã¯ãã£ãšã·ã³ãã«ã§ãSOQL ã® SELECT ããŒã¯ãŒãã䜿çšããŸããã代ããã« FIND ããŒã¯ãŒãã䜿çšããŸããåºæ¬çãªã¯ãšãªã¯æ¬¡ã®ããã«ãªããŸãã
FIND {"grand*"} IN ALL FIELDS RETURNING Account(Name), Contact(LastName, FirstName, Email)ãã®ã¯ãšãªã¯ 3 ã€ã®éšåã«åããããŸãã
FIND å¥ãšæ€çŽ¢èª
FIND å¥ã¯å¿ é ã§ãããã㯠SOSL æ€çŽ¢ç¹æã®å¥ã§ããFIND ã®åŸã«ãæ¢ããŠããæ€çŽ¢èªãèšè¿°ããŸãã1 ã€ã®åèªã§ãèªå¥ã§ã䜿çšã§ããŸãããã®å Žåã®æ€çŽ¢èªã¯ãgrand*ãã§ããäŸã®ããã«ã¯ã€ã«ãã«ãŒãæåã䜿çšããããšãã§ããŸããã¯ã€ã«ãã«ãŒãæåã«ã¯æ¬¡ã®ãã®ããããŸãã
*ã¯æ€çŽ¢èªã®éäžãŸãã¯æ«å°Ÿã«ãã 0 å以äžã®æåãšäžèŽããŸãã?ã¯æ€çŽ¢èªã®éäžãŸãã¯æ«å°Ÿã«ãã 1 æåã®ã¿ãšäžèŽããŸãã
ã¯ã€ã«ãã«ãŒãã®è©³çްã«ã€ããŠã¯ã次ã®åå ã§èª¬æããŸããããã§ã¯ãæ€çŽ¢èªã®éäžãšæ«å°Ÿã®äž¡æ¹ã«ã¯ã€ã«ãã«ãŒãã䜿çšã§ãããããšãã£ãŠããããå¿ èŠãªããã§ã¯ãªããšããããšã ããèªèããŠãã ããããã£ãšã¯ã£ããèšãã°ããã¹ããã©ã¯ãã£ã¹ãšããŠããã¯ãå§ãããŸãããã¯ãšãªã®ããã©ãŒãã³ã¹ã«å€å€§ãªåœ±é¿ãåãŒãããå¯èœæ§ãããããã§ãã
IN å¥
IN å¥ã䜿çšãããšãæ€çŽ¢ã°ã«ãŒããæå®ã§ããŸããSalesforce ã§ã©ã®é ç®ãæ€çŽ¢ããããæå®ã§ããŸãããã ããç¥ã£ãŠããã¹ãéèŠãªäºé ããããŸãã®ã§ããã°ãããä»ãåããã ããã
äžã®äŸã§ã¯ ALL FIELDS ãæå®ããŸãããæåã©ãããã¹ãŠã®é ç®ãæ€çŽ¢ãããããšæããããããŸããããRETURNING å¥ã«æå®ãããªããžã§ã¯ãã«ãã£ãŠã¯ãç¹å®ã®ããã¹ãããŒã¹ã®é ç®ã®ã¿ãå«ãŸããŸããå°ããããã«ãããã£ãã§ãã?
ç¹°ãè¿ããŸãã®ã§ãããå°ããä»ãåããã ãããã€ãŸããããããããšã§ããè¿ããããªããžã§ã¯ããèšäºãããã¥ã¡ã³ãããã£ãŒãã³ã¡ã³ãããã£ãŒãé ç®ããã¡ã€ã«ãååããŸãã¯ãœãªã¥ãŒã·ã§ã³ã§ããã°ããã¹ãŠã®é ç®ãæ€çŽ¢ãããŸãããããã®çš®é¡ã®ãªããžã§ã¯ãã§ã¯ãã¹ãŠã®é ç®ãæ€çŽ¢ããå¿ èŠãããããã§ãã
ãã ããããã¹ãããŒã¹ä»¥å€ã®ããŸããŸãªé ç®ãå«ãŸããŠããã»ãšãã©ã®æšæºãªããžã§ã¯ããã«ã¹ã¿ã ãªããžã§ã¯ããæ€çŽ¢ããå Žåã¯ãååãã¡ãŒã«ãé»è©±çªå·ãããã³ãµã€ãããŒã®é ç®ã®ã¿ãæ€çŽ¢ããã®ãçã«ããªã£ãŠããŸãããããŠããããããã©ã«ãã®åäœã§ãã
ã§ã¯ãALL FIELDS ãæå®ãã代ããã«ååé ç®ã®ã¿ãæ€çŽ¢ãããšããŸãããã®å Žåã¯ãNAME FIELDS ã䜿çšããŸããé»è©±çªå·é ç®ã®ã¿ãæ€çŽ¢ããã«ã¯ PHONE FIELDS ã䜿çšããŸããããããã§ããã
RETURNING å¥
RETURNING å¥ã䜿çšãããšãã©ã®ããŒã¿ãè¿ããã©ã®ãªããžã§ã¯ããæ€çŽ¢ããããæå®ã§ããŸããäžã®äŸã§ã¯ãAccount ã® Name é ç®ãš Contact ã® LastnameãFirstNameãEmail é ç®ãè¿ãããŸããæ€çŽ¢ã§ã¯ãäž¡æ¹ã®ãªããžã§ã¯ãã®ãã¹ãŠã®æ€çŽ¢å¯èœãªé ç®ã察象ãšãªããŸãããè¿ãããçµæã«ã¯æ¬åŒ§å ã«æå®ãããé ç®ã®ã¿ãå«ãŸããŸãã
ãªããžã§ã¯ãåãæå®ãããšãã«æ¬åŒ§å ã«é ç®åãæå®ããªãã£ãå Žåãæ€çŽ¢ã§äžèŽãèŠã€ãããšããã®ãªããžã§ã¯ãã® ID ã®ã¿ãè¿ãããŸãã
SOSL æ§æã«ã¯ãã®ä»ã«ãçç¥å¯èœãªå¥ããããŸãã詳现ã«ã€ããŠã¯å ¬åŒããã¥ã¡ã³ããåç §ããŠãã ããã
ããŠããããŸãäžèŽã«ã€ããŠã¯ãSOSL ã¯ä»ã®å šææ€çŽ¢ãšã³ãžã³ãšæ¯ã¹ãŠã©ããªã®ã ãããšãæãã§ããããSOQL ã¯ãšãªã§äœ¿çšã§ãã LIKE ããŒã¯ãŒããš SOSL ã§äœ¿çšã§ããã¯ã€ã«ãã«ãŒã以å€ã« Salesforce ã§äœ¿çšã§ããã®ã¯ããã¯ããŒã ãæ€çŽ¢ããã·ããã æ€çŽ¢ã®ã¿ã§ãã
SOQL ã SOSL ã?
ã©ã¡ãã䜿çšããŸãã? ãããèããŠãé©ããªããšæããŸãããããã¯ç®çã«ãã£ãŠç°ãªããŸãã
åäžã®ãªããžã§ã¯ãããã®ããŒã¿ãå¿ èŠã§ããã®ãªããžã§ã¯ãã®æ¡ä»¶ãæ£ç¢ºã«ããã£ãŠãããšãã«ã¯ãéåžžãSOQL ã䜿çšããŸããå®éãã¯ãšãªã®ã»ãšãã©ã¯ãããã SOQL ã䜿çšããã§ãããã
SOSL ãæã圹ã«ç«ã€ã®ã¯ãããŒã¿ãã©ã®é ç®ããªããžã§ã¯ãã«ååšããŠããããæ£ç¢ºã«ããã£ãŠããããè€æ°ã®ãªããžã§ã¯ãã«ããã£ãŠæ€çŽ¢ããå¿ èŠãããå Žåã§ãããããã®ãªããžã§ã¯ããé¢é£ããŠããªãå Žåã«ã¯ç¹ã«ãããåœãŠã¯ãŸããŸããããã¯ãSOQL ã¯é¢é£ãªããžã§ã¯ãã«ã®ã¿äœ¿çšã§ããããã§ãã
SOSL æ€çŽ¢ã®å®è¡
SOSL æ€çŽ¢ã䜿çšããçç±ã𿹿³ãããã£ãã®ã§ãäœæããŠã¿ãŸãããã
SOSL æ€çŽ¢ãå®è¡ããæ¹æ³ã¯ããã€ããããŸãããããã§ã¯æãç°¡åãªéçºè ã³ã³ãœãŒã«ã§ã¯ãšãªãšãã£ã¿ãŒã䜿çšããæ¹æ³ã«çŠç¹ãçµããŸããããã¯ãSOQL ã«ã€ããŠã®åã®åå ã§ã䜿çšããã®ã§ããããèŠããŠããã§ãããã
åææ¡ä»¶
SOSL æ€çŽ¢ãå®è¡ããåã«ãéçºçµç¹ã«ããŒã¿ã远å ããå¿ èŠããããŸãããŸããéçºçµç¹ã«ã¢ããããŒãã§ãããµã³ãã«ããã¥ã¡ã³ããäœæããŸãã
- ã¡ã¢åž³ãŸãã¯ä»»æã®ããã¹ãããŒã¹ã®ãšãã£ã¿ãŒã§ããã¡ã€ã«ãäœæããæ¬¡ã®ããã¹ããå
¥åããŸãã
First quarter figures were better than expected for new employee Joseph Smith.(æ°ããåŸæ¥å¡ã§ãã Joseph Smith ã®ç¬¬äžååæã®æ°å€ã¯äºæ³ãäžåã£ãã)
- ãã®ãã¡ã€ã«ã«
TestDocument.txtãšããååãä»ããŠããŒã«ã«ãã·ã³ã«ä¿åããŸãã - Developer Edtion çµç¹ã§ã[ãã¡ã€ã«] ã¿ãã® [ãã¡ã€ã«ã®ã¢ããããŒã] ãã¯ãªãã¯ããŸãã
- TestDocument.txt ãã¡ã€ã«ãä¿åããå Žæã«ç§»åãã[éã] ãã¯ãªãã¯ããŸãã
- [å®äº] ãã¯ãªãã¯ããŸãã
æšæºãªããžã§ã¯ãã®ããã€ãã«ãããŒã¿ã远å ããå¿ èŠããããŸãã
- [Setup (èšå®)] ã¡ãã¥ãŒããã[Developer Console (éçºè
ã³ã³ãœãŒã«)] ãéžæããŸãã
- éçºè
ã³ã³ãœãŒã«ã§ã[Debug (ãããã°)] ãéžæãã[Open Execute Anonymous Window (å®è¡å¿åãŠã£ã³ããŠãéã)] ãéžæããŸãã
- æ¢åã®ã³ãŒããåé€ããæ¬¡ã®ã¹ãããããæ¿å
¥ããŸãã
// Add Account and related Contact Account acct = new Account( Name='Test Account', Phone='(225)555-8989', NumberOfEmployees=10, BillingCity='Baton Rouge'); insert acct; // Get the Id of the Inserted Account ID acctID = acct.ID; // Add a contact to the Account. Contact con = new Contact( FirstName='Joseph', LastName='Wilson', Phone='(225)555-8787', Email='jsmith@testaccount.com', AccountId=acctID); insert con;
- [å®è¡] ãã¯ãªãã¯ããŸãã
éçºè ã³ã³ãœãŒã«ã®äœ¿çš
æ€çŽ¢å¯Ÿè±¡ã®ãµã³ãã«ããŒã¿ãã§ããã®ã§ãã¯ãšãªãšãã£ã¿ãŒã䜿çšããŠæ°ãã SOSL æ€çŽ¢ãå®è¡ããŸãã
- éçºè
ã³ã³ãœãŒã«ã§ [Query Editor (ã¯ãšãªãšãã£ã¿ãŒ)] ã¿ããã¯ãªãã¯ããŸãã
- 次ã®ã¯ãšãªãå
¥åããŸãã
FIND {joey} IN ALL FIELDS RETURNING Account(Name), Contact(LastName, FirstName), ContentVersion(Title)
ããã§ãŸãæ°ã¥ãã®ã¯ãåã®äŸã§æ€çŽ¢èªãå²ãã§ããäžéåŒçšç¬Šãäžæ¬åŒ§ã«çœ®ãæããããŠããããšã§ããã¯ãšãªãšãã£ã¿ãŒã§ SOSL æ€çŽ¢ãè¡ããšãã«ã¯åŒçšç¬Šã§ã¯ãªãäžæ¬åŒ§ã䜿çšããå¿ èŠããããŸããApex ã³ãŒãã§æ€çŽ¢ãè¡ããšãã«ã¯äžéåŒçšç¬Šã䜿çšããŸããããã«ãæ€çŽ¢èªããjoeyããšããåèªã«ãªã£ãŠããŸãããã㯠Joseph ã®ããã¯ããŒã ãšããŠç¥ãããŠããŸã (æ€çŽ¢ããå®éã®åå㯠Joseph ã§ã)ã
- [å®è¡] ãã¯ãªãã¯ããŸãã
æ€çŽ¢çµæã§ã¯ã1 ã€ã®ã¿ãã®ã¿ã衚瀺ãããŸããæ¿å ¥ããååŒå 責任è ã [Contact (ååŒå 責任è )] ã¿ãã«è¡šç€ºãããŸããããã¯ããŒã æ©èœã«åºã¥ããŠäžèŽãèŠã€ãã£ãããã§ããäžæ¹ãã¢ããããŒããã TestDocument ã¯è¡šç€ºãããŸãããããã¯ããŒã æ€çŽ¢ã¯ååŒå ãååŒå 責任è ããªãŒããããã³ãŠãŒã¶ãŒãªããžã§ã¯ãã«ã®ã¿é©çšãããããã§ãããã¹ãã倿Žãããã¹ãŠã®çµæãåŸãããããã«ããŸãããã - ã¯ãšãªãšãã£ã¿ãŒã§æ¢åã®ã¯ãšãªã次ã®ã³ãŒãã«çœ®ãæããŸãã
FIND {jos*} IN ALL FIELDS RETURNING Account(Name), Contact(LastName, FirstName), ContentVersion(Title)
- [å®è¡] ãã¯ãªãã¯ããŸãã
- ä»åã¯æ€çŽ¢çµæã 2 ã€ã®ã¿ãã«è¡šç€ºãããŸãã[Document (ããã¥ã¡ã³ã)] ã¿ãã«ã¯ã¢ããããŒãããããã¥ã¡ã³ãã®ååã衚瀺ãããŸããç®çã®çµæããã¹ãŠåŸãããã«ã¯ã€ã«ãã«ãŒãæ€çŽ¢ã䜿çšããããšã«æ³šç®ããŠãã ããã
ããã²ãšããš...
å¶éã®ããã«ãSOSL æ€çŽ¢ã§äžèŽããçµæããã¹ãŠèŠã€ãããªãå¯èœæ§ããããŸããSalesforce ã¯ãã«ãããã³ãç°å¢ã§ãããã¹ãŠã®ã客æ§ããªãœãŒã¹ãéçãŸã§äœ¿çšããããšãèš±å¯ããããšããã£ãšããéã«ã·ã¹ãã å šäœãã¯ã©ãã·ã¥ããŠããŸãã§ãããã20,000 æåãè¶ ããæ€çŽ¢ãè¡ããšã·ã¹ãã ã«è² è·ãããããŸãããã®ãããSOQL ãšåæ§ã« SOSL ã§ãæ€çŽ¢ãå¶éãããŠããŸããæ¬¡ã¯ãæ€çŽ¢ã¯ãšãªãæé©åããæ¹æ³ãåŠç¿ããŸãã
