인덱스 정의에서 multi 객체를 사용하여 필드를 인덱싱하는 데 사용할 대체 분석기를 지정할 수 있습니다. 기본 분석기 외에 대체 분석기를 사용하여 필드를 인덱싱하는 경우 기본 분석기 또는 대체 분석기로 컬렉션을 검색할 수 있습니다. 이 페이지에서는 multi를 사용하여 인덱스 정의에 대체 분석기를 지정하는 방법을 보여줍니다.
멀티 분석기 제한 사항
multi경로 옵션은 문자열 유형의 필드에만 사용할 수 있습니다.
MongoDB Search는 multi 객체의 여러 계층 중첩을 지원 하지 않습니다.
예시
다음 예시는 sample_mflix.movies 컬렉션의 필드에 대한 인덱스 정의를 보여줍니다. 클러스터에 컬렉션을 로드한 경우, Atlas UI의 Visual Editor 또는 JSON 편집기를 사용하여 예시 인덱스를 만들 수 있습니다. 또는 mongosh.를 사용하여 만들 수도 있습니다.
단일 필드 예시
다음 예시 인덱스 정의는 standard 분석기를 사용하여 title 필드에 대한 인덱스를 지정합니다. 또한 인덱스 정의에서는 lucene.french 분석기를 title 필드의 대체 분석기로 지정합니다(이름은 frenchAnalyzer).
다음 쿼리는 frenchAnalyzer라는 대체 분석기를 사용하여 문자열 liberte를 검색합니다.
frenchAnalyzer 이(가) 인덱싱된 문자열 è Nous la Libertè 와 쿼리 텀 liberte 를 모두 기본 단어 libert(으)로 축소했기 때문에 결과에 있는 문서 일치하는 것입니다. MongoDB Search는 standard 분석기 사용한 검색 에 대해 분음 부호를 제거 하지 않으므로 이 문서 반환하지 않습니다. 각 분석기 인덱스 및 쿼리 에 대해 다음과 같은 토큰(검색 가능한 용어)을 생성합니다.
분석기 | Index Tokens | 쿼리 토큰 |
|---|---|---|
표준 분석기 |
|
|
프랑스어 분석기 |
|
|
여러 필드 예시
다음 예시 인덱스 정의는 standard 분석기를 사용하여 title 및 plot 필드에 대한 인덱스를 지정합니다. 인덱스 정의는 또한 title 및 plot 필드에 대한 대체 분석기로 lucene.french를 지정합니다.
다음 쿼리는 frenchAnalyzer라는 대체 분석기를 사용하여 title 및 plot 필드에서 revolution 문자열과 일치하는 항목을 검색합니다.
결과의 문서에는 title 및 plot 필드 모두에 쿼리 텀이 포함되어 있습니다. 각 분석기는 결과의 각 문서의 title 필드에 대해 다음 토큰(검색 가능한 텀)을 생성합니다.
년 | 분석기 | Index Tokens | 쿼리 토큰 |
2012 | 표준 분석기 |
|
|
1985 | 표준 분석기 |
|
|
2014 | 표준 분석기 |
|
|
1970 | 표준 분석기 |
|
|
1989 | 표준 분석기 |
|
|
결과의 다섯 번째 문서에서 frenchAnalyzer는 title 필드의 발음 구별 기호를 제거하여 쿼리 텀과 일치하는 문서를 찾습니다.