Website-Suche

javascript - Mongoose indiziert HTML-Text?


Ich habe ein Dokument mit dem Feld HTML. Das HTML-Feld speichert echten HTML.

schema: {
  html: String
}
doc: {
  "html" : "<p>I am html<p>"
}

Und ich möchte das HTML-Feld indizieren, sodass, wenn ich nach „I am html“ suche, dieses Dokument zurückgegeben wird.

Gibt es eine Möglichkeit, dieses Dokument nur mithilfe des Textes innerhalb dieses HTML-Tags zu durchsuchen.

Antwort #1

Sie können den $regex-Operator verwenden:

db.collection.find({
  "html": {
    "$regex": "I am HTML"
  }
})

Funktionierendes Beispiel

Antwort #2

Wenn Sie einen Textindex für diese Sammlung haben, können Sie wie folgt suchen:

db.collection.find({
  $text: {
    $search: "\"I am html\""
  }
})

Mit Anführungszeichen können Sie nach einer genauen Phrase suchen.

Sie können auch nach genauen Phrasen suchen, indem Sie sie in Anführungszeichen setzen. Wenn der $Suchbegriff sowohl eine Phrase als auch einzelne Begriffe enthält, werden bei der Textsuche nur Dokumente gefunden, die die Phrase enthalten.

Verwandte Artikel