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

MongoDB индекс за търсене на пълен текст:грешка:твърде много текстов индекс за, защо?

MongoDB позволява само един текстов индекс на колекция.

Но можете да използвате текстов индекс, който обхваща множество полета:

db.collection.ensureIndex( {
    description: "text",
    title: "text"
} );

По този начин ще получите резултати, когато фразата, която търсите, бъде намерена и в двете. Когато това не е това, което искате, например когато имате две заявки за търсене, всяка от които връща резултати от едно от полетата, но не и от другото, имате две опции.

  1. използвайте текстов индекс с много полета, но отхвърляйте резултатите, които идват от грешното поле на приложния слой.
  2. извлечете едно от двете полета в различна колекция. Документите в тази колекция могат да съдържат пълни копия, редактирани копия или само полето, което индексирате, и _id на оригиналния документ.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongoengine - Игнорирайте допълнителни полета за валидиране на схема

  2. MongoDB $tan

  3. MongoDB Не може да намери запис чрез указване на ts.t(ts е тип времево клеймо)

  4. Meteor:Уникален MongoDB URL за различни потребители

  5. Вземете името на месеца от дата в SQL