1. 올바른 검색 솔루션 선택
사용자 정의 검색 솔루션을 만들어야 하는 경우
- 사용자들이 수천 개의 다양한 데이터 중 레코드 하나를 찾는 방법
- 모든 레코드 => org 데이터베이스의 데이터 필드로 저장 => 레코드 업데이트/생성 => 데이터사본 만들어지고
토큰
으로 분할 => 토큰을 원래 레코드에 대한 링크와 함께 색인
에 저장
검색 과정
(1) 검색 필드에 용어 검색
(2) 검색엔진이 검색어를 토큰
으로 분할
(3) 토큰을 검색 색인에 저장된 레코드 정보와 일치시킴
(4) 관련성에 따라 레코드 순위 지정
(5) 사용자가 액세스 할 수 있는 결과 반환
토큰으로 분할하는 이유?
- 검색 색인 및 토큰을 통해 맞춤법 수정, 별명, 표제어 표기법, 동의어 그룹 등의 고급 기능 적용 가능.
- 검색어 변형 식별 가능 (데이터베이스 검색은 '토끼 슬리퍼'와 정확히 일치하는 레코드만 반환 / 그러나 토큰 검색은 '토끼 슬리퍼s'검색도 가능.
사용자 정의 검색 솔루션이 필요한 경우
- 조직에서 표준 Salesforce UI 대신 사용자 정의 UI를 사용하는 경우 사용자 정의 검색 솔루션이 필요
SOSL과 SOQL의 차이점
SOQL & SOSL
SOQL | SOSL |
---|
단일 개체 또는 서로 관련된 다중 개체에서 데이터를 검색 | 필드 내에 존재하는 특정 용어에 대한 데이터를 검색 |
지정된 기준을 충족하는 레코드 수를 계산 | 필드 내에서 여러 용어를 토큰화하고 이로부터 검색 색인을 구축할 수 있으므로 SOSL 검색이 더 빠르고 더 관련성 있는 결과를 반환 |
쿼리의 일부로 결과를 정렬 | 여러 개체와 필드를 효율적으로 검색하고 개체는 서로 관련이 있을 수도 있고 그렇지 않을 수도 있음 |
숫자, 날짜 또는 확인란 필드에서 데이터를 검색 | 부서 기능을 사용하여 조직의 특정 부서에 대한 데이터를 검색하고 가능한 한 가장 효율적인 방법으로 찾을 수 있음 |
suggested records API(추천 레코드 API) & Salesforce Federated Search
suggested records API(추천 레코드 API)
: 검색 시 자동 추천, 즉각적인 결과, 자동 완성
Salesforce Federated Search
: 사용자가 Salesforce Classic, Salesforce Console 또는 Lightning Experience 내부에 있으면서 Salesforce 외부에 저장된 항목을 검색할 수 있는 방법 (단, 검색 색인을 거치지 않아 고급 기능 활용 불가
)
프로토콜을 사용하여 쿼리 보내기
- Query(REST) 및 query() (SOAP) - 지정된 개체에 대해 SOQL 쿼리를 실행하고 지정된 기준과 일치하는 데이터를 반환
- Search(REST) 및 search() (SOAP) - 조직의 데이터에 대해 SOSL 텍스트 문자열 검색을 실행합니다.
출처 : 트레일헤드 (https://trailhead.salesforce.com/ko/content/learn/modules/search_solution_basics/search_solution_basics_choosing?trailmix_creator_id=strailhead&trailmix_slug=prepare-for-your-salesforce-platform-developer-i-credential)