Forum » Programiranje » MongoDB | $text search; kako naredit %LIKE%
MongoDB | $text search; kako naredit %LIKE%
HotBurek ::
Pozdravljeni.
Po spodnjih navodilih sem naredil index na tabeli:
https://docs.mongodb.com/manual/core/li...
Sedaj bi pa rad, da če iščem po besedi trol, da mi najde tudi troll, trollmaster itn.
Za search uporabim tole:
Iz dokumentacije:
https://docs.mongodb.com/manual/referen...
So if a document field contains the word blueberry, a search on the term blue will not match. However, blueberry or blueberries will match.
Jst bi pa rad, da v zgornjem primeru išče podobno, kot v SQL-u dela LIKE "%trol%".
Sicer obstaja spodnja obcija, samo ta nima score možnosti (score je vedno 0.0):
Torej, kako v MongoDB naredit search, ki bo delal tako kot SQL LIKE %trol% (se pravi, da najde troll, trollmaster, ...), ter da bo zraven score, po katerem se da rezultate sortirat?
Po spodnjih navodilih sem naredil index na tabeli:
https://docs.mongodb.com/manual/core/li...
db.tabela1.createIndex( { title: "text", description: "text"}, { name: "_title_description_fts_"} );
Sedaj bi pa rad, da če iščem po besedi trol, da mi najde tudi troll, trollmaster itn.
Za search uporabim tole:
db.tabela1.find( { $text: { $search: "trol", $caseSensitive: false, $diacriticSensitive: false, $language: "none" } }, { "_id":1, "title":1, "description":1, score:{ $meta: "textScore" } } ).sort( { score: { $meta: "textScore" }} );
Iz dokumentacije:
https://docs.mongodb.com/manual/referen...
So if a document field contains the word blueberry, a search on the term blue will not match. However, blueberry or blueberries will match.
Jst bi pa rad, da v zgornjem primeru išče podobno, kot v SQL-u dela LIKE "%trol%".
Sicer obstaja spodnja obcija, samo ta nima score možnosti (score je vedno 0.0):
db.tabela1.find( { $or:[ {"title": /^trol/}, {"description": /^trol/} ] }, { "_id":1, "title":1, "description":1, score:{ $meta: "textScore" } } );
Torej, kako v MongoDB naredit search, ki bo delal tako kot SQL LIKE %trol% (se pravi, da najde troll, trollmaster, ...), ter da bo zraven score, po katerem se da rezultate sortirat?
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [MariaDB] Kolikokrat se pojavi tekst v tekstu?Oddelek: Programiranje | 816 (509) | BigWhale |
» | Slo-Tech userscriptsOddelek: Izdelava spletišč | 5174 (2626) | jype |
» | MySQL podatki iz več tabelOddelek: Programiranje | 887 (677) | smacker |
» | Kako se lotit? (php MySql)Oddelek: Izdelava spletišč | 1370 (850) | technolog |
» | Dodajanje slik (galerije) na spletno stranOddelek: Izdelava spletišč | 1532 (1361) | martincek1 |