Fulltext vyhledávání s relevancí rubrika: Databáze: SQL

3 mrFrostikcz
položil/-a 24.5.2013
 
upravil/-a 28.5.2013

Dobrý den,

obracím se na Vás se žádostí o pomoc při chybách při fulltextovém vyhledávání na e-shopu. Vyhledáváme zadaný dotaz ve více sloupcích, ale řadíme výsledky dle relevace. Při zadání běžných názvů zboží (např. Michael), tak v pořádku zobrazí e-shop výsledky a relevance je taky v pořádku. Problém ale nastává většinou při zadání dotazu, který obsahuje i čísla, např. 2M 78. V tomto případě to najde nějaké výsledky, ale zboží, které se jmenuje přímo 2M 78 nikoliv. Většina sloupců v MySQL je jako "text". Níže jsou nějaké konkrétní příklady a dotaz.

Předem děkuji za odpovědi a případnou pomoc.

Příklady:
Hledat: Abb (http://cs.phono.cz/vysledky-vyhledavani/fulltext/Abb/) > najde Abba, atp.
Hledat: Supra (http://cs.phono.cz/vysledky-vyhledavani/fulltext/Supra/) > najde Supra Records, Supraphon, atp.

SQL dotaz:

$q1 = mysql_query("SELECT *, MATCH(item_name, item_producter, product_ean, item_keywords, custom_field_1, custom_field_2, custom_field_3) AGAINST('".$search."*' IN BOOLEAN MODE) AS score FROM frostadmin_shop_items WHERE MATCH(item_name, item_producter, product_ean, item_keywords, custom_field_1, custom_field_2, custom_field_3) AGAINST('".$search."*' IN BOOLEAN MODE) AND status = 1 ORDER BY SCORE DESC");
odkaz Vyřešeno
9 Petr Voneš
odpověděl/-a 27.5.2013

Komentáře

  • Michal Illich : Doplním, že Sphinx se používá i tady na devel.cz 27.5.2013
  • mrFrostikcz : Děkuji za rady. Dnes jsem právě nainstaloval Sphinx a vyhovuje mi po všech stránkách. Pak jsem přišel na Devel a vidím, že tu je právě na tohle řešení doporučení. :) 27.5.2013

Pro zobrazení všech 4 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.