Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Fulltextové vyhledávání

Aktivity
Avatar
rhojza
Člen
Avatar
rhojza:13.1.2019 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.1.2019 19:50
Avatar
Odpovídá na rhojza
Uživatel sítě :13.1.2019 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.1.2019 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.1.2019 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.1.2019 7:56
 
Nahoru Odpovědět
14.1.2019 7:55
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:14.1.2019 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.1.2019 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.