Latest web development tutorials

MongoDB Volltextsuche

Die Einrichtung eines Volltextsuchindex für jedes Wort, unter Angabe der Anzahl und Lage des Wortes erscheint in dem Artikel, wenn eine Abfrage des Benutzers, wird das Suchprogramm im Voraus festgelegt werden, um den Index zu finden, und die Suchergebnisse zurück zu den Suchmethode des Benutzers.

Dieser Prozess ist ähnlich dem Such Wort für Wort Wörterbuch Tabelle Abfrageprozess.

MongoDB Version 2.4 von Anfang an Volltextsuche zu unterstützen, unterstützt derzeit 15 Sprachen (vorübergehend Chinese nicht unterstützt) Volltextindex.

  • Dänisch
  • niederländisch
  • Englisch
  • Finnisch
  • Französisch
  • Deutsch
  • ungarisch
  • Italienisch
  • Norwegisch
  • Portugiesisch
  • Rumänisch
  • Russisch
  • Spanisch
  • Schwedisch
  • Türkisch

Aktivieren Sie die Volltextsuche

Nach MongoDB Version 2.6 standardmäßig Volltextsuche aktiviert ist, wenn Sie die vorherige Version verwenden, müssen Sie den folgenden Code zu verwenden, die Volltextsuche zu aktivieren:

>db.adminCommand({setParameter:true,textSearchEnabled:true})

Oder verwenden Sie den Befehl:

mongod --setParameter textSearchEnabled=true

Erstellen Sie einen Volltextindex

Betrachten Sie die folgenden Beiträge Dokument Datensätze, einschließlich der Inhalt des Artikels (post_text) und Etiketten (Tags):

{
   "post_text": "enjoy the mongodb articles on w3cschool.cc",
   "tags": [
      "mongodb",
      "w3cschool"
   ]
}

Wir können Volltextindex von post_text Feld bauen, so können wir den Inhalt des Artikels zu suchen:

>db.posts.ensureIndex({post_text:"text"})

Verwenden Sie die Volltextindizierung

Nun, da wir einen Volltextindex von post_text hergestellt haben, können wir nach Schlüsselwörtern in dem Artikel w3cschool.cc suchen:

>db.posts.find({$text:{$search:"w3cschool.cc"}})

Der folgende Befehl gibt die Dokumentdaten w3cschool.cc folgende Schlüsselwörter enthalten:

{ 
   "_id" : ObjectId("53493d14d852429c10000002"), 
   "post_text" : "enjoy the mongodb articles on w3cschool.cc", 
   "tags" : [ "mongodb", "w3cschool" ]
}
{
   "_id" : ObjectId("53493d1fd852429c10000003"), 
   "post_text" : "writing tutorials on w3cschool.cc",
   "tags" : [ "mongodb", "tutorial" ] 
}

Wenn Sie eine ältere Version von MongoDB verwenden, können Sie den folgenden Befehl verwenden:

>db.posts.runCommand("text",{search:" w3cschool.cc"})

Verwenden Sie die Volltextindizierung können die Sucheffizienz zu verbessern.


Entfernen Sie die Volltextindizierung

Löschen Sie den vorhandenen Volltextindex, können Sie den Befehl find verwenden Sie den Indexnamen zu finden:

>db.posts.getIndexes()

Holen Sie sich den Namen des Index obigen Befehl, in diesem Fall den Index mit dem Namen post_text_text, führen Sie den folgenden Befehl, um den Index zu löschen:

>db.posts.dropIndex("post_text_text")