인덱스 정의에서 multi 객체를 사용하여 필드를 인덱싱하는 데 사용할 대체 분석기를 지정할 수 있습니다. 기본 분석기 외에 대체 분석기를 사용하여 필드를 인덱싱하는 경우 기본 분석기 또는 대체 분석기로 컬렉션을 검색할 수 있습니다. 이 페이지에서는 multi를 사용하여 인덱스 정의에 대체 분석기를 지정하는 방법을 보여줍니다.
멀티 분석기 제한 사항
multi경로 옵션은 문자열 유형의 필드에만 사용할 수 있습니다.
MongoDB Search는 multi 객체의 여러 계층 중첩을 지원 하지 않습니다.
예시
The following examples demonstrate index definitions on the fields in the sample_mflix.movies collection. If you load the collection on your cluster, you can create the example indexes using the Visual Editor or the JSON Editor in the Atlas UI or using 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 필드의 발음 구별 기호를 제거하여 쿼리 텀과 일치하는 문서를 찾습니다.