복붙노트

[MONGODB] MongoDB를 - 텍스트 필드 및 텍스트 인덱스에서 인덱스의 차이?

MONGODB

MongoDB를 - 텍스트 필드 및 텍스트 인덱스에서 인덱스의 차이?

(예, 주 또는 지방 이름을) 문자열을 포함하는 MongoDB를 필드의 경우, 무엇을 (있는 경우)의 차이는 문자열 타입의 필드에 인덱스를 만드는 사이에있다 :

db.ensureIndex( { field: 1 } )

그 필드에 텍스트 색인을 작성 :

db.ensureIndex( { field: "text" }

경우, 두 경우 모두, 필드는 문자열 타입이다.

나는 (어쩌면 더) 하나의 단어를 포함 할 텍스트 필드에 대소 문자를 구분 검색을 할 수있는 방법을 찾고 있어요. 몽고에 새로운이기 때문에, 나는 문제가 두 개의 인덱스 방법 위의를 사용하여 구별하고, $ 정규식 검색과 같은 심지어 뭔가가 있어요.

해결법

  1. ==============================

    1.두 지수 옵션은 매우 다릅니다.

    두 지수 옵션은 매우 다릅니다.

    http://docs.mongodb.org/manual/core/index-text/

    http://docs.mongodb.org/manual/reference/operator/query/regex/

  2. ==============================

    2.텍스트 인덱스는 텍스트 내부의 단어를 검색 할 수 있습니다. 당신은 비 텍스트 인덱스 텍스트 필드에 정규식을 사용하여 동일한 기능을 수행 할 수 있지만, 훨씬 느린 것입니다.

    텍스트 인덱스는 텍스트 내부의 단어를 검색 할 수 있습니다. 당신은 비 텍스트 인덱스 텍스트 필드에 정규식을 사용하여 동일한 기능을 수행 할 수 있지만, 훨씬 느린 것입니다.

    이전 MongoDB를 2.6로, 텍스트 검색 작업은 다른 필터와 결합,도 공통의 커서로 결과를 처리 coulnd't 때문에 큰 단점이었다 자신의 명령으로 만들 수 있었다. 지금 현재로, 텍스트 검색은 전형적인 찾기 방법에 대한 또 다른 또 다른 운영자이며, 그 슈퍼 좋다.

    그래서, 왜 그 이후 검색 수 빠른 비 인덱스 텍스트 필드에 정규식보다 텍스트 인덱스이며,? 텍스트 인덱스는 사전, 당 언어 기초 (영어 기본값)에 단어를 파기 할 수있는의 영리한 하나로 작동 때문이다. 당신은 텍스트 검색 쿼리를 실행하면, 당신은 자신에게 달리 전체 컬렉션을 통해 반복하는 소비 될 시간을 절약, 사전에 실행합니다.

    텍스트 인덱스 컬렉션과 함께 성장할 것으로 명심, 그것은 공간을 많이 사용할 수 있습니다. 덮인 컬렉션을 사용할 때이 어려운 방법을 배웠습니다. 캡 텍스트 인덱스 할 수있는 방법이 없습니다.

    텍스트 필드에 일반 인덱스와 같은

    db.ensureIndex( { field: 1 } )
    

    당신이 전체 텍스트를 검색 할 경우에만 유용 할 것이다. 그것은 숫자 해시를 찾기 위해, 예를 들어 사용됩니다. 그것은 텍스트 단락, 문구 등을 저장할 때 인덱스의이 종류를 적용 할 수있는 이해가되지 않습니다

  3. from https://stackoverflow.com/questions/24316117/mongodb-difference-between-index-on-text-field-and-text-index by cc-by-sa and MIT license