Geek tričko zdarma Python týden
Tričko zdarma! Stačí před dobitím bodů použít kód TRIKO15. Více informací zde
Pouze tento sleva až 80% na kurzy Python

Diskuze: Fulltextové vyhledávání

Aktivity (2)
Avatar
rhojza
Člen
Avatar
rhojza:13. ledna 19:50

Mám vyhledávání z tabulky databáze - SELECT title FROM table WHERE title LIKE %slovo% - výsledek jsou řádky které obsahují jakýkoliv záznam kde je "slovo". Např. hledám slovo "bus" v tabulce mám autobus, trolejbus - výsledek je autobus i trolejbus.

Poté mám vyhledávání - SELECT title FROM table WHERE MATCH (title) AGAINST (slovo IN BOOLEAN MODE) - ve stejném případě, kdy hledám slovo "bus" a v tabulce mám autobus, trolejbus, tak výsledek bude nic

Zkusil jsem: Zkoušel jsem dotaz SELECT title FROM table WHERE MATCH (title) AGAINST (slovo IN BOOLEAN MODE) s operátorem * (slovo), ale to funguje jen pouze když záznam v tabulce začíná na hledané slovo.

Chci docílit: Chtěl bych dosáhnout, abych fulltextovým vyhledáváním dosáhl výsledku jako při dotazu s LIKE %slovo%

Děkuji

 
Odpovědět 13. ledna 19:50
Avatar
Odpovídá na rhojza
Uživatel sítě :13. ledna 22:00

Hádám, že bude problém v min. délce hledaného slova, výchozí hodnota je 4.

https://dev.mysql.com/…riables.html#…

Nahoru Odpovědět 13. ledna 22:00
Chybami se člověk učí, běžte se učit jinam!
Avatar
rhojza
Člen
Avatar
Odpovídá na Uživatel sítě
rhojza:14. ledna 7:55

Minimální délkou slova to není, sice v příkladu je hledané slovo krátké, ale nefunguje to, i když je hledané slovo delší.

Editováno 14. ledna 7:56
 
Nahoru Odpovědět 14. ledna 7:55
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:14. ledna 8:13

google = sql match fulltext example NEBO
google = sql match fulltext
https://www.oreilly.com/…ch04s15.html
(tohle platilo ale pro sql 4, snad ti to pomuze)

SELECT COUNT(*) FROM kjv
WHERE MATCH(vtext) AGAINST('"still small voice"' IN BOOLEAN MODE);

SELECT COUNT(*) FROM kjv
WHERE MATCH(vtext) AGAINST('+still +small +voice' IN BOOLEAN MODE);

SELECT COUNT(*) FROM kjv
WHERE vtext LIKE '%still small voice%';
 
Nahoru Odpovědět 14. ledna 8:13
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.