sql >> Databáze >  >> NoSQL >> MongoDB

Jak A a NE v MongoDB $text vyhledávání

Existuje několik možností, které můžete použít s textovým vyhledáváním, aby vyhovovaly těmto potřebám. Zvažte následující dokumenty:

{ "text" : "cake" }
{ "text" : "sale" }
{ "text" : "sale cake" }
{ "text" : "cake sale" }
{ "text" : "dress sale" }
{ "text" : "cake sale monday" }

Výchozí „seznam“ slov je nebo zahrnutí, ale pokud nechcete a včetně "citujete" slova:

db.words.find( { "$text": { "$search": "\"cake\" \"sale\"" } },{_id: 0})
{ "text" : "cake sale" }
{ "text" : "sale cake" }
{ "text" : "cake sale monday" }

Pokud chcete vyloučit slovo pak předponu - :

db.words.find( { "$text": { "$search": "\"cake\" \"sale\" -monday" } },{_id: 0})
{ "text" : "cake sale" }
{ "text" : "sale cake" }

A pokud byste chtěli část toho jako přesnou frázi pak "ocitujete" celou frázi:

db.words.find( { "$text": { "$search": "\"cake sale\" -monday" } },{_id: 0})
{ "text" : "cake sale" }

Odvozování slov však má problém, takže :

db.words.find( { "$text": { "$search": "test -testing" } },{_id: 0})

Ve skutečnosti by nevrátil výsledek.

Podívejte se na dokumentaci k $text operátora pro příklady. Momentálně tam nejsou všichni, ale zlepšuje se to.




  1. StackExchange TimeoutException při pokusu o vložení 750 položek ve 2 sadách v redis

  2. Jak nastavit expiraci na více klíčů v Redis

  3. Jak přimět Redis, aby zvolil politiku vystěhování LRU pouze pro některé klíče?

  4. Přístupy k zálohování a zotavení po havárii v HBase