AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.
Docs Menu

자동 완성을 위해 필드를 인덱싱하는 방법

MongoDB Search autocomplete 유형을 사용하여 자동 완성을 위해 문자열 필드의 텍스트 값을 인덱스 할 수 있습니다. 자동 완성 연산자 사용하여 autocomplete 유형으로 인덱싱된 필드를 쿼리 할 수 있습니다.

autocomplete 유형을 사용하여 인덱싱할 수도 있습니다.

동적 매핑 고려 사항은 동적 매핑을 참조하세요.

MongoDB Search autocomplete 유형은 다음 매개 변수를 사용합니다.

옵션
유형
필요성
설명
기본값

type

문자열

필수

이 토크나이저 유형을 식별하는 사람이 읽을 수 있는 레이블입니다. 값은 string이어야 합니다.

analyzer

문자열

옵션

이 자동 완성 매핑에 사용할 분석기 의 이름입니다. lucene.kuromoji 언어 분석기 와 다음 사용자 지정 분석기 토크나이저 및 토큰 필터를 제외한 모든 MongoDB Search 분석기 사용할 수 있습니다.

lucene.standard

maxGrams

int

옵션

인덱싱된 시퀀스당 최대 문자 수입니다. 이 값은 인덱싱된 토큰의 문자 길이를 제한합니다. maxGrams 값보다 긴 용어를 검색 하면 MongoDB Search는 토큰을 maxGrams 길이로 자릅니다.

maxGrams 권장사항은 maxGrams 구성을 참조하세요.

15

minGrams

int

옵션

인덱싱된 시퀀스당 최소 문자 수입니다. 최소값은 4 를 권장합니다. 4 보다 작은 값은 인덱스 크기가 매우 커질 수 있으므로 성능에 영향을 미칠 수 있습니다. edgeGram에 대해서만 기본값인 2를 권장합니다.

2

tokenization

열거형

옵션

자동 완성을 위해 필드를 인덱싱할 때 사용할 토큰화 전략입니다. 값은 다음 중 하나일 수 있습니다.

  • edgeGram - 이 자동 완성 매핑에서 사용되는 분석기로 구분된 단어의 왼쪽에서 시작하는 가변 길이 문자 시퀀스를 사용하여 grams라고 불리는 인덱스 가능 토큰을 생성합니다.

  • rightEdgeGram - 이 자동 완성 매핑에서 사용되는 분석기로 구분된 단어의 오른쪽에서 시작하는 가변 길이 문자 시퀀스를 사용하여 grams라고 불리는 인덱스 가능 토큰을 생성합니다.

  • nGram - 단어 위로 가변 길이 문자 창 밀어서 grams 이라고 하는 인덱스 가능 토큰을 만듭니다. MongoDB Search는 edgeGram 또는 rightEdgeGram보다 nGram 에 대해 더 많은 토큰을 생성합니다. 따라서 nGram 는 필드 를 인덱스 하는 데 더 많은 공간과 시간이 걸립니다. nGram 는 긴 복합어가 포함된 언어나 공백을 사용하지 않는 언어를 쿼리하는 데 더 적합합니다.

edgeGram, rightEdgeGram, nGram은 문자 수준에서 적용됩니다. 예를 들어 다음 시나리오를 가정해 보겠습니다.

The quick brown fox jumps over the lazy dog.

minGrams2maxGrams5으로 토큰화하면 MongoDB Search는 선택한 tokenization 값을 기준으로 다음 문자 시퀀스를 인덱싱합니다.

th
the
the{SPACE}
the q
qu
qui
quic
uick
...

og
dog
{SPACE}dog
y dog
zy
azy
lazy
{SPACE}lazy
he
the
{SPACE}the
r the
er
ver
over
{SPACE}over
...

th
the
the{SPACE}
the q
he
he{SPACE}
he q
he qu
e{SPACE}
e q
e qu
e qui
{SPACE}q
{SPACE}qu
{SPACE}qui
{SPACE}quic
qu
qui
quic
quick
...

성능 고려 사항은 토큰화 성능을 참조하십시오.

edgeGram

foldDiacritics

부울

옵션

색인된 텍스트에 대해 발음 부호를 포함하거나 제거하는 등의 정규화를 수행할지 여부를 나타내는 플래그입니다. 값은 다음 중 하나일 수 있습니다.

  • true - 인덱스 및 쿼리 텍스트에서 발음 부호를 무시하는 등 정규화를 수행합니다. 예시 를 들어 MongoDB Search는 분음 부호가 있거나 없는 결과를 반환하기 때문에 cafè 을 검색 하면 cafècafe 문자가 포함된 결과가 반환됩니다.

  • false - 인덱스 및 쿼리 텍스트에서 발음 부호를 무시하는 등 정규화를 수행하지 않습니다. 따라서 MongoDB Search는 쿼리 에서 발음 부호가 있든 없든 문자열과 일치하는 결과만 반환합니다. 예시 를 들어 cafè 을 검색 하면 cafè 문자가 포함된 결과만 반환됩니다. cafe 를 검색 하면 cafe 문자가 포함된 결과만 반환됩니다.

true

similarity.type

문자열

옵션

autocomplete 연산자로 점수를 매길 때 이 문자열 매핑에 사용할 유사성 알고리즘의 이름입니다. 값은 bm25, boolean, 또는 stableTfl중 하나일 수 있습니다.

사용 가능한 유사성 알고리즘에 대해 자세히 학습 점수 세부 정보를 참조하세요.

bm25

maxGrams 옵션은 인덱싱 동안 생성되는 부분 문자열의 최대 길이를 지정합니다. maxGrams 을 늘리면 더 많은 부분 문자열이 생성되어 더 긴 쿼리의 일치가 향상됩니다. 필요한 수준 이상으로 설정하면 인덱스 크기가 증가하고 인덱싱 성능에 영향을 미칠 수 있습니다.

maxGrams을 구성할 때 다음 권장사항을 고려하세요.

  • 기본값은 15이하입니다. 인덱스가 불필요하게 증가하지 않도록 가능한 경우 maxGrams15 이하로 설정합니다.

  • 쿼리 길이에 맞추세요. 최악의 사례를 인덱싱하기보다는 일반적인 사용자 쿼리 길이를 기준으로 maxGrams 을 설정합니다.

  • **과도한 인덱싱을 피하세요.** 쿼리가 현재 maxGrams 값보다 짧으면 필요이상의 데이터를 인덱싱하고 있을 수 있습니다.

  • Use an alternative for longer queries. If your queries regularly exceed 15 characters, use a custom analyzer for prefix, contains, and suffix patterns.

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.