MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

MongoDB - Разлика между индекс на текстово поле и текстов индекс?

Двете опции за индекс са много различни.

  • Когато създадете редовен индекс на поле за низ, той индексира цялата стойност в низа. Полезно предимно за низове от една дума (като потребителско име за влизане), където можете да съвпадате точно.

  • Текстов индекс от друга страна ще токенизира и ще ограничи съдържанието на полето. Така той ще разбие низа на отделни думи или токени и допълнително ще ги сведе до техните стъбла, така че вариантите на една и съща дума да съвпадат („говорим“ съвпадащи с „разговори“, „говорим“ и „говорим“ например като „говорим“ е стебло и на трите). Предимно полезно за истински текст (изречения, абзаци и т.н.).

    Текстово търсене

    Текстовото търсене поддържа търсенето на низово съдържание в документи за събиране. MongoDB предоставя $text оператор за извършване на текстово търсене в заявки и в тръбопроводи за агрегиране.

    Процесът на текстово търсене:

    tokenizes and stems the search term(s) during both the index creation and the text command execution.
    assigns a score to each document that contains the search term in the indexed fields. The score determines the relevance of a document to a given search query.
    

    $text операторът може да търси думи и фрази. Заявката съвпада с пълните коренови думи. Например, ако полето на документа съдържа думата боровинка, търсенето на термина синьо няма да съответства на документа. Въпреки това търсенето на боровинки или боровинки ще съвпада.

  • $regex търсенията могат да се използват с обикновени индекси на низови полета, за да се осигури съвпадение на шаблони и търсене с заместващи знаци. Не е много ефективен потребител на индекси, но ще използва индекси, където може:

    Ако за полето съществува индекс, тогава MongoDB съпоставя регулярния израз със стойностите в индекса, което може да бъде по-бързо от сканирането на колекция. По-нататъшна оптимизация може да възникне, ако регулярният израз е „префиксен израз“, което означава, че всички потенциални съвпадения започват с един и същ низ. Това позволява на MongoDB да конструира „диапазон“ от този префикс и да съвпада само с онези стойности от индекса, които попадат в този диапазон.

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

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



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Мониторинг и защита на MongoDB с ClusterControl Advisors

  2. Големи работни потоци от данни с помощта на панди

  3. Достъп до MongoDB от Go

  4. Свързване с MongoDB 3.0 с Java Spring

  5. MongoDB не работи. ГРЕШКА:dbpath (/data/db) не съществува.