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

Търсенето на пълен текст в MongoDB не дава очаквания резултат за @@@

Текстовото търсене е предназначено да индексира низове въз основа на евристика на езика . Текстовото индексиране включва две основни стъпки:токенизиране (преобразуване на низ в отделни термини от интерес), последвано от stemming (преобразуване на всеки термин в коренна форма за индексиране въз основа на специфични за езика правила).

По време на стъпката на токенизиране определени знаци (например препинателни знаци като @ ) се класифицират като разделители на думи (известни още като разделители ), а не въвеждане на текст и се използва за разделяне на оригиналния низ на термини. Специфични за езика стоп думи (често срещани думи като "the", "is" или "on" на английски) също са изключени от текстов индекс.

Тъй като фразата ви за търсене на @@@ се състои изцяло от разделители, няма съответен запис в текстовия индекс.

Ако искате да съответствате на общи модели на низове, трябва да използвате регулярни изрази вместо текстово търсене. Например:db.getCollection('TestCollection').find({field2:/@@@/}) . Все пак, моля, обърнете внимание на предупрежденията относно използване на индекс за регулярни изрази.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB към DynamoDB

  2. Има ли многоядрена експлоатираща NoSQL система?

  3. Как да изтриете документи, върнати от заявка за агрегиране в mongodb

  4. Неуспешно удостоверяване при опит за запазване в mongodb

  5. Mongo Embedded Document Query