2016-05-03 5 views
0

Hi Ich erstelle eine Suchoption für eine Mungo-Sammlung. Das Problem besteht in der Handhabung von Keywords. Ich muss mit Schlüsselwörtern umgehen, wie wenn sie in "" sind, sollten sie als einzelnes Wort behandelt werden, und wenn sie durch Komma getrennt oder durch Leerzeichen getrennt sind, sollten sie als OR Bedingungen Parameter wie diese behandelt werden. und Komma getrennt. Jede Referenz oder ein Beispiel wäre sehr hilfreich.Erstellen einer Volltextsuchseite für eine Tabelle

Antwort

0

Werfen Sie einen Blick auf die Bedienerdokumentation $text.

Nehmen wir an, Sie eine Sammlung namens posts, die die folgenden Dokumente hat:

{postText: 'The dog ran really fast.'}, 
{postText: 'The cat ran pretty slow.'}, 
{postText: 'That hampster is crazy fast.'} 

Achten Sie darauf, einen Textindex erstellt haben.

db.posts.createIndex({postText: "text"}) 

Für Ihren -oder- Fall geben Sie einfach die Schlüsselwörter ein, die durch ein Leerzeichen getrennt sind.

// this will return all documents 
db.posts.find({$text: {$search: 'dog cat hampster'}}) 

// this will return two documents (dog & hampster) 
db.posts.find({$text: {$search: 'really fast'}}) 

Um einen Ausdruck genau zu beschreiben, schließen Sie ihn in Anführungszeichen ein.

// this will return one document (dog) 
db.posts.find({$text: {$search: '"really fast"'}}) 

Sie können sie auch kombinieren.

// this will return all documents 
db.posts.find({$text: {$search: '"really fast" cat'}}) 

Hoffnung, das hilft.

+0

danke @derek soike für Ihren Vorschlag. Aber wenn die Eingabe vom Benutzer zur Verfügung gestellt wird, wie kann ich kategorisieren, ob es ein einzelnes Wort wie "wirklich schnell" oder 2 Wörter "wirklich", "schnell" ?? – NKMY

Verwandte Themen