조직은 일반적으로 개념이나 사물을 지칭하는 고유한 용어나 여러 가지 방법을 사용합니다. 사용자가 원하는 항목을 검색하는 데 도움이 되도록 용어의 유사성을 정립하는 동의어를 정의해야 합니다.
동의어는 _dictionaryEntry
잘 알려진 스키마를 사용하여 항목의 색인을 생성하는 방식으로 정의합니다.
_dictionaryEntry
유형의 항목에는 다음 속성이 포함될 수 있습니다.
속성 | 유형 | 설명 | 필수 여부 |
---|---|---|---|
_term |
string | 정의할 용어. 권장 값은 구두점과 하이픈이 없는 단어 또는 구입니다. | 필수 |
_synonym |
string (repeated) | _term 에 정의된 문자열과 일치하는 쿼리에 포함될 대체 용어입니다. |
필수 |
_onlyApplicableForAttachedSearchApplications |
boolean | 데이터 소스 및 검색 애플리케이션별로 동의어를 그룹화할 수 있습니다. 자세한 내용은 데이터 소스별 동의어 정의를 참고하세요. | 선택사항 |
사용자가 쿼리에 _term
속성 값을 포함하면 유효 쿼리는 '용어 OR 동의어'가 됩니다. 예를 들어 용어 "scifi"가 동의어 "science fiction"로 정의되면 "scifi" 단어가 포함된 쿼리는 "scifi" 또는 "science fiction."를 포함하는 항목과 일치합니다.
동의어는 양방향으로 적용되지 않습니다. 대신 "science fiction,"용 쿼리이면 Cloud Search는 쿼리에 동의어를 적용하지 않습니다. 쿼리는 "science fiction."가 포함된 항목만 일치합니다. "scifi"가 포함된 항목은 생략됩니다.
두 용어를 서로 바꿔서 사용할 수 있도록 하려면 다음과 같이 각 용어를 별도로 정의하세요.
용어 | 동의어 |
---|---|
scifi | science fiction |
science fiction | scifi |
쿼리 처리 중에는 하이픈과 기타 구두점이 제거된 후 동의어가 적용됩니다. 사용자 쿼리 "sci-fi"는 _term
"sci fi."와 일치합니다. 사용자가 하이픈을 추가할 수 있는 용어의 동의어를 만들려면 먼저 하이픈 대신 공백을 사용하도록 _term
를 정규화하세요.
계속해서 예를 들어 다음과 같은 정의는 "sci-fi," "sci fi," "scifi,"와 "science fiction"를 서로 바꿔서 사용할 수 있는 사용자 쿼리와 일치합니다.
용어 | 동의어 |
---|---|
scifi | science fiction, sci fi |
sci fi | science fiction, scifi |
science fiction | scifi, sci fi |
기본적으로 모든 데이터 소스의 동의어는 전체 도메인에 적용됩니다. 특히 동의어는 데이터 소스에 관계없이 모든 검색에 대해 검색 애플리케이션 전반에 적용됩니다. 데이터 소스별 동의어를 사용하려면 데이터 소스별 동의어 정의를 참조하세요.
Cloud Search SDK를 사용하여 전역 동의어 정의
콘텐츠 커넥터 SDK를 사용하여 용어와 동의어를 정의할 수 있습니다. 커넥터 제작 방법을 보려면 콘텐츠 커넥터 만들기를 참조하세요.
다음 스니펫은 CSV 파일 레코드를 기반으로 용어와 동의어를 나타내는 RepositoryDoc
를 빌드하는 방법을 보여줍니다.
동의어를 정의할 때는 다음 사항에 유의하세요.
- 동의어 항목은 도메인 공용이어야 합니다. 이전 예에서는 ACL을
DOMAIN_PUBLIC_ACL
로 설정하면 이를 구현할 수 있습니다. - 다음 속성은 코드의 도메인 공개 설정을 재정의하므로 구성 파일에 정의해서는 안 됩니다.
defaultAcl.mode=FALLBACK
defaultAcl.public=true
검색 애플리케이션별 동의어 정의
기본적으로 동의어는 모든 검색 애플리케이션의 모든 데이터 소스에 적용됩니다.
하지만 조직에 별도의 엔지니어링팀과 영업팀이 있고 각 팀에 직무별 동의어를 비롯한 서로 다른 검색 환경을 제공하려 한다고 가정해 보겠습니다. 이 경우 엔지니어링별 데이터 소스와 동의어가 있는 검색 애플리케이션 하나와 영업별 데이터 소스와 동의어가 있는 다른 검색 애플리케이션을 만들 수 있습니다. 이 목표를 달성하려면 _onlyApplicableForAttachedSearchApplications=true
를 사용하여 특정 데이터 소스에서 각 동의어의 색인을 생성합니다. 이 설정은 특정 데이터 소스가 포함된 검색 애플리케이션에만 동의어가 적용되도록 제한합니다.
예를 들어 이전 코드 샘플에 다음 코드 줄을 추가하면 색인이 생성된 동의어가 데이터 소스에 따라 달라집니다.
structuredData.put("_onlyApplicableForAttachedSearchApplications", true);