MongoDB Search autocomplete 유형을 사용하여 자동 완성을 위해 문자열 필드의 텍스트 값을 인덱스 할 수 있습니다. 자동 완성 연산자 사용하여 autocomplete 유형으로 인덱싱된 필드를 쿼리 할 수 있습니다.
autocomplete 유형을 사용하여 인덱싱할 수도 있습니다.
값이 문자열 배열인 필드입니다. 자세한 내용은 배열의 요소를 인덱싱하는 방법을 참조하세요.
embeddedDocuments 유형으로 인덱싱된 문서 배열 내의 string 필드입니다. 인덱스 생성 시간 고려 사항에 대해서는 인덱스 생성 시간을 참조하세요.
동적 매핑 고려 사항은 동적 매핑을 참조하세요.
Define the Index for the autocomplete Type
Configure autocomplete Field Properties
MongoDB Search autocomplete 유형은 다음 매개 변수를 사용합니다.
옵션 | 유형 | 필요성 | 설명 | 기본값 | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 문자열 | 필수 | 이 토크나이저 유형을 식별하는 사람이 읽을 수 있는 레이블입니다. 값은 | |||||||||||||||||||||||
| 문자열 | 옵션 | 이 자동 완성 매핑에 사용할 분석기 의 이름입니다. |
| ||||||||||||||||||||||
| int | 옵션 | 인덱싱된 시퀀스당 최대 문자 수입니다. 이 값은 인덱싱된 토큰의 문자 길이를 제한합니다.
|
| ||||||||||||||||||||||
| int | 옵션 | 인덱싱된 시퀀스당 최소 문자 수입니다. 최소값은 |
| ||||||||||||||||||||||
| 열거형 | 옵션 | 자동 완성을 위해 필드를 인덱싱할 때 사용할 토큰화 전략입니다. 값은 다음 중 하나일 수 있습니다.
성능 고려 사항은 토큰화 성능을 참조하십시오. |
| ||||||||||||||||||||||
| 부울 | 옵션 | 색인된 텍스트에 대해 발음 부호를 포함하거나 제거하는 등의 정규화를 수행할지 여부를 나타내는 플래그입니다. 값은 다음 중 하나일 수 있습니다.
|
| ||||||||||||||||||||||
| 문자열 | 옵션 | autocomplete 연산자로 점수를 매길 때 이 문자열 매핑에 사용할 유사성 알고리즘의 이름입니다. 값은 사용 가능한 유사성 알고리즘에 대해 자세히 학습 점수 세부 정보를 참조하세요. |
|
Try an Example for the autocomplete Type
고려 사항
maxGrams 구성
maxGrams 옵션은 인덱싱 동안 생성되는 부분 문자열의 최대 길이를 지정합니다. maxGrams 을 늘리면 더 많은 부분 문자열이 생성되어 더 긴 쿼리의 일치가 향상됩니다. 필요한 수준 이상으로 설정하면 인덱스 크기가 증가하고 인덱싱 성능에 영향을 미칠 수 있습니다.
maxGrams을 구성할 때 다음 권장사항을 고려하세요.
기본값은 15이하입니다. 인덱스가 불필요하게 증가하지 않도록 가능한 경우
maxGrams을15이하로 설정합니다.쿼리 길이에 맞추세요. 최악의 사례를 인덱싱하기보다는 일반적인 사용자 쿼리 길이를 기준으로
maxGrams을 설정합니다.**과도한 인덱싱을 피하세요.** 쿼리가 현재
maxGrams값보다 짧으면 필요이상의 데이터를 인덱싱하고 있을 수 있습니다.Use an alternative for longer queries. If your queries regularly exceed 15 characters, use a custom analyzer for
prefix,contains, andsuffixpatterns.
토큰화 성능
edgeGram, rightEdgeGram 또는 nGram 토큰화 전략으로 자동 완성을 위해 필드를 인덱싱하는 것은 string 필드를 인덱싱하는 것보다 더 많은 계산 및 인덱스 저장이 필요합니다.
지정된 토큰화 전략에 따라 MongoDB Search는 시큰실 토큰을 에미팅하기 전에 연결합니다(싱글링). MongoDB Search는 minGrams ~ maxGrams 자 길이의 토큰을 에미팅합니다.
토큰을
minGrams미만으로 유지합니다.minGrams보다 크고maxGrams보다 작은 토큰을 다음 토큰에 결합하여 지정된 최대 문자 길이까지 토큰을 생성합니다.
동적 매핑
MongoDB Search가 동적 매핑 에 사용하는 기본 필드 유형에는 autocomplete 유형이 포함되지 않습니다. 동적 매핑에 autocomplete 유형을 사용하면 인덱스 크기와 리소스 사용이 증가하고 예상치 못한 스코링 결과가 나타날 수 있습니다. 정적 매핑에 autocomplete 를 사용하세요.
하지만 동적 매핑에 autocomplete 을 포함해야 하는 경우 사용자 지정 typeSet 정의에 추가할 수 있습니다. autocomplete 와 사용자 지정 typeSet 구성에 대해 자세히 알아보려면 인덱스 크기 및 구성을 참조하세요.
인덱스 생성 시간
데이터 세트에 문서가 많거나 데이터 범위가 넓은 경우, 자동 완성 연산자의 이 인덱스를 생성하는 데 시간이 걸릴 수 있습니다. 새 인덱스 생성이 생성되는 동안 다른 인덱스 및 쿼리에 미치는 영향을 줄이려면 autocomplete 유형만 포함된 별도의 인덱스를 생성합니다.
인덱스 성능 고려 사항에 대해서는 인덱스 성능 고려 사항을 참조하세요.
자세히 알아보기
autocomplete 연산자에 대한 자세한 내용과 쿼리 예시를 보려면 자동 완성 기능을 참조하세요.
For examples that demonstrate how to run case-insensitive, prefix, starts with, and contains queries using regex expressions, see Use $search Instead of $text or $regex.