Azure DocumentDB의 전체 텍스트 검색 기능은 기존 쿼리 방법 외에 강력한 문서 검색 기능을 제공합니다. 이 고급 검색 기술을 통해 사용자는 정확한 일치뿐만 아니라 자연어 처리, 단어 변형 및 컨텍스트 관련성을 기반으로 관련 콘텐츠를 검색할 수 있습니다.
통합 텍스트 검색 엔진은 외부 검색 서비스의 필요성을 제거합니다. 이렇게 하면 데이터베이스 아키텍처를 간소화할 수 있습니다. 특수 텍스트 인덱스를 사용하여 검색 작업을 효율적으로 처리합니다. 시스템은 문서 콘텐츠를 처리, 토큰화 및 분석합니다. 따라서 애플리케이션은 특정 키워드, 구 또는 관련 용어를 포함하는 문서를 빠르게 찾을 수 있습니다.
비고
Azure DocumentDB의 전체 텍스트 검색은 MongoDB $text 연산자를 지원하는 PostgreSQL 스타일 TSVector 인덱스를 내부적으로 사용합니다.
기능 지원
| 특징 | 지원 수준 | Description | 샘플 쿼리 |
|---|---|---|---|
| 토큰화 | Supported | TSVector를 사용하여 텍스트를 개별 토큰으로 나누기 | 해당 사항 없음 |
| 형태소 분석 | Supported | 언어 분석기를 기반으로 굴절된 단어를 루트 형식으로 변환합니다. | 해당 사항 없음 |
| 언어 지원 | 부분적으로 지원됨 | 덴마크어(), 네덜란드어(da), 영어(nl), 핀란드어(en), 프랑스어(fi), 독일어(fr), 헝가리어(de), 이탈리아어(), 노르웨이어(huit), 포르투갈어(), 포르투갈어(nb), 루마니아어(pt), 러시아어(ro), 스페인어(ru), 스웨덴어(es), 터키어(sv)와 같은 공용 언어를tr 지원합니다. |
db.text_search.find({ "$text": { "$search": "leche", "$language": "es" } }) |
| 용어 기반 검색 | Supported | 인덱싱된 필드의 정확한 용어 검색 | db.movies.find({ "$text": { "$search": "surfer" } }) |
| 구문 검색 | 부분적으로 지원됨 | 따옴표를 사용하여 구를 정확하게 일치시킵니다. 일부 호환성 문제가 있습니다. | db.text_search.find({ "$text": { "$search": "\"are cats\"" } }) |
| 접두사 쿼리 | Supported | regex를 사용하여 패턴으로 시작하는 용어 찾기 | db.articles.find({ title: { $regex: /^data/i } }) |
| 와일드카드 검색 | Supported | regex +를 사용하여 유연한 패턴 일치 $text |
db.articles.find({ $and: [ { $text: { $search: "hello" } }, { title: { $regex: /.*world.*/i } } ] }) |
| Regex 검색 | Supported | 유연한 텍스트 패턴 일치를 위해 정규식 사용 | db.articles.find({ title: { $regex: /^hello.*world$/i } }) |
| 부울 연산자 | Supported |
+, -을 사용하여 용어를 포함하거나 제외하세요. |
db.text_search.find({ "$text": { "$search": "cafe +con" } }) |
| 다중 일치 | 부분적으로 지원됨 | 가중치와 결합된 인덱스를 통한 다중 필드 쿼리 | db.myColl.createIndex({ title: "text", genre: "text" }, { default_language: "english", weights: { title: 10, genre: 3 } }) |
| 패싯 검색 | 사용할 수 없음 | 범주 또는 태그(예: 브랜드, 색, 가격)로 검색 결과를 필터링합니다. 텍스트 검색에서 기본적으로 지원되지 않습니다. | 해당 사항 없음 |
| 자동 완성 및 승격 | 사용할 수 없음 | 특정 용어의 자동 완성(미리 입력 제안) 및 쿼리 시간 상승은 지원되지 않습니다. 상승은 필드 가중치를 통해 인덱스 수준에서만 수행할 수 있습니다. | 해당 사항 없음 |
| 사용자 지정 분석기 | 사용할 수 없음 | 사용자 지정 토큰화 또는 필터링이 지원되지 않음 | 해당 사항 없음 |
| 동의어 지원 | 사용할 수 없음 | 동의어에 대한 네이티브 지원 없음 | 해당 사항 없음 |
| 퍼지 검색 | 사용할 수 없음 | 오타 허용 또는 퍼지 매치 지원 없음 | 해당 사항 없음 |
| 근접 검색 | 사용할 수 없음 | 특정 단어 거리 내에서 용어를 검색할 수 없습니다. | 해당 사항 없음 |