멀티 분석기
인덱스 정의에서 multi
객체를 사용하여 필드도 인덱싱할 대체 분석기를 지정할 수 있습니다. 기본 분석기 외에 대체 분석기를 사용하여 필드를 인덱싱하는 경우 기본 분석기 또는 대체 분석기를 사용하여 컬렉션을 검색할 수 있습니다. 이 페이지에서는 multi
를 사용하여 인덱스 정의 에서 대체 분석기를 지정하는 방법을 보여 줍니다. 대체 분석기를 사용한 검색에 대해 자세히 알아보려면 쿼리 경로 구성을 참조하세요.
제한 사항
multi
경로 옵션은 문자열 유형의 필드에만 사용할 수 있습니다.
Atlas Search는 multi
객체의 여러 레이어를 중첩하는 것을 지원하지 않습니다.
예제
다음 예제 인덱스 정의는 standard
분석기를 사용하여 sample_mflix.movies
컬렉션의 title
필드에 대한 인덱스를 지정합니다. 또한 인덱스 정의는 키워드 분석기 를 keywordAnalyzer
이라는 이름의 title
필드에 대한 대체 분석기로 지정합니다. 키워드 분석기 는 전체 필드를 단일 용어로 인덱싱하므로 검색어와 지정된 필드가 정확히 일치하는 경우에만 결과를 반환합니다.
cluster에 collection을 로드한 경우, Atlas UI의 비주얼 편집기 또는 JSON 편집기를 사용하여 예제 인덱스를 만들 수 있습니다. 원하는 구성 방법을 선택한 후 데이터베이스와 collection을 선택합니다.
다음 쿼리는 keywordAnalyzer
라는 대체 분석기를 사용하여 Atlas Search에서 string The
Count of Monte Cristo
에서 정확히 일치하는 항목을 찾습니다.
1 db.movies.aggregate([ 2 { 3 "$search": { 4 "text": { 5 "query": "The Count of Monte Cristo", 6 "path": { "value": "title", "multi": "keywordAnalyzer" } 7 } 8 } 9 }, 10 { 11 "$project": { 12 "title": 1, 13 "year": 1, 14 "_id": 0 15 } 16 } 17 ])
{ "title" : "The Count of Monte Cristo", "year" : 1934 } { "title" : "The Count of Monte Cristo", "year" : 1954 } { "title" : "The Count of Monte Cristo", "year" : 1998 }
반면 standard
분석기를 사용하는 동일한 쿼리에서는 제목에 the
또는 Count
또는 of
또는 Monte
또는 Cristo
단어가 포함된 영화를 모두 찾을 수 있습니다.
Atlas Search는 분석기를 사용하여 결과의 문서에 대해 다음과 같은 토큰(검색 가능한 용어)을 생성합니다.
제목 | 표준 분석기 토큰 | 키워드 분석기 토큰 |
---|---|---|
The Count of Monte Cristo | the , count , of , monte , cristo | The Count of Monte Cristo |