Autor | Zpráva | ||
---|---|---|---|
Prkny Profil |
#1 · Zasláno: 15. 9. 2020, 12:07:38
Dobrý den,
rád bych použil fulltextové vyhledávání na webu. Vyhledávání mi funguje dobře na text, ale nyní mám u zboží kódy ve tvaru 118-1 nebo 112-4 či CW224-17. Pro takové kódy to již dobře nefunguje. Prosím o pomoc. Můj kód: SELECT id FROM `zbozi` WHERE MATCH(kod,nazev_zb,klic_slova,product_name,nazev_hlaska,seo) AGAINST('" . mysqli_real_escape_string($mysqli_connect_db6, $hledane_slovo) . "*' IN BOOLEAN MODE) AND aktivni='1' ORDER BY 2 * MATCH(nazev_zb) AGAINST ('" . mysqli_real_escape_string($mysqli_connect_db6, $hledane_slovo) . "*') + MATCH(kod,nazev_zb,klic_slova,product_name,nazev_hlaska,seo) AGAINST ('" . mysqli_real_escape_string($mysqli_connect_db6, $hledane_slovo) . "*') DESC, prodano DESC LIMIT 20 |
||
Kajman Profil |
#2 · Zasláno: 15. 9. 2020, 14:03:08
IN BOOLEAN MODE stejně nebude závratně rychlé, tak při detekci pomlčky (která se ve vyhledávacím řetězci používá k negaci) ve vyhledávání můžete místo toho hledat díky LIKE .
|
||
Prkny Profil |
#3 · Zasláno: 15. 9. 2020, 14:24:49
To znamená, že fulltext v tomto případě pro čísla nelze využít? Nelze převést ten vyhledávací výraz z čísel na textový řetězec?
Problém LIKE v mém případě (pokud ho nepoužívám špatně) je ten, že hledané slovo "Míč modrý" nenajde zboží "modrý míč Gala". Fulltext ho najde. Fulltext lze srovnat dle relevantních výsledků. Proto bych raději použil fulltext vyhledávání. Třeba LIKE používám špatně, pokud ano, prosím o příklad lepšího použití. Můj příkaz LIKE: SELECT id FROM `zbozi` WHERE ((nazev_zb LIKE '%" . $hledane_slovo . "%') OR (klic_slova LIKE '%" . $hledane_slovo . "%') OR (kod LIKE '%" . $hledane_slovo . "%') OR (nazev_hlaska LIKE '%" . $hledane_slovo . "%')) ORDER BY nazev_zb |
||
Kajman Profil |
#4 · Zasláno: 15. 9. 2020, 14:30:55
Můžete mít dva druhy dotazů. Jeden pro klasická slova, tam použijete nynější řešení. Druhý dotaz s like, pokud se v hledaném textu objeví pomlčky a nejde tak použít fulltext.
Výraz si rozdělíte na jednotlivá slova a pak můžete ve verzi s like psát (nazev_zb LIKE '%míč%' AND nazev_zb LIKE '%modrý%') |
||
Prkny Profil |
#5 · Zasláno: 15. 9. 2020, 15:17:52
Výborný nápad, děkuji.
|
||
Časová prodleva: 4 roky
|
0