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 | 941 (634) | BigWhale | 
| » | Slo-Tech userscriptsOddelek: Izdelava spletišč | 5495 (2947) | jype | 
| » | MySQL podatki iz več tabelOddelek: Programiranje | 986 (776) | smacker | 
| » | Kako se lotit? (php MySql)Oddelek: Izdelava spletišč | 1498 (978) | technolog | 
| » | Dodajanje slik (galerije) na spletno stranOddelek: Izdelava spletišč | 1613 (1442) | martincek1 |