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: Vyhledávání napříč celým webem

Aktivity
Avatar
katrincsak
Člen
Avatar
katrincsak:11.9.2015 13:59

Zdravím,

plánuji za pár dní se vrhnout na poslední věc a zároveň i spustit svůj první projekt.

jedná se jednoduše o bazar i když jich tu je více, ale jsem si jistý, že jsem schopný nabídnout to co zase nenabízí jiní nebo není vše na jednom místě.

K věci:

Potřebuji udělat kvalitní vyhledávání napříč vším co by se dalo, ale zároveň tak aby vyhledávání bylo co nejpřesnější.

V plánu mám udělat víceúrovňové vyhledávání s nastavením přesnosti. Samozřejmě čím přesnější, tím méně výsledků.

Rád bych od vás rady jaké funkce třeba používáte a na co bych si měl dát pozor. Již jsem se okrajově na něco díval a ani nepotřebuji scripty, jako spíše všeobecné rady.

Aktuálně se databáze skládá ze 4 hlavních částí.

  1. Hlavní sekce (např. Auta)
  2. Sub sekce (např. BMW)
  3. Nadpis
  4. Popis

V plánu mám přidat i přesnější specifikace, které by usnadnili další vyhledávání.

Děkuji všem za poskytnuté informace, které mi usnadní bez laboratoření situaci řešit. Nikdy jsem vyhledávání neřešil a ani neříkám, že bych to nezvládl, ale rád bych si tohle zjednodušil a to hlavně z důvodu toho že se jedná o docela důležitou věc a vyhledávání na bazaru je dost klíčové, takže bych to nechtěl několikrát předělávat.

Děkuji moc ;-)

Editováno 11.9.2015 14:00
 
Odpovědět
11.9.2015 13:59
Avatar
David Novák
Tvůrce
Avatar
Odpovídá na katrincsak
David Novák:11.9.2015 14:57

Přemýšlel jsi nad tagy?

Nahoru Odpovědět
11.9.2015 14:57
Chyba je mezi klávesnicí a židlí.
Avatar
katrincsak
Člen
Avatar
Odpovídá na David Novák
katrincsak:11.9.2015 15:56

Zatím určitě ne, protože tohle vidím prvně. Co jsem se díval, tak myslíš za pomocí příkazů v mysql "Like" nebo "Join" ? Zároveň jak to funguje s malými písmeny ? Je potřeba to nejdříve např. projet zmenšením písmen?

 
Nahoru Odpovědět
11.9.2015 15:56
Avatar
David Novák
Tvůrce
Avatar
Odpovídá na katrincsak
David Novák:11.9.2015 17:01

No myslím normální tagy popisující obsah.. :)

Tj. "auto", "červená", "fiat", "bourané", ..

SQL příkazy zas tak moc neznám.. Použil jsem to párkrát ;) Takže W3C Schools a tam dohledáš významy a příklady použití pro všechno..

Možná by pro tebe ale bylo lepší a jednodušší použít už nějaký hotový vyhledávač..

Nahoru Odpovědět
11.9.2015 17:01
Chyba je mezi klávesnicí a židlí.
Avatar
Jindřich Máca
Tvůrce
Avatar
Odpovídá na katrincsak
Jindřich Máca:11.9.2015 17:16

Ahoj, za vyhledáváním obecně je poměrně složitá teorie, co se týče indexování a následného prohledávání obsahu. :) Nejsem si jistý, že jsem schopen Ti to vysvětlit v jednom komentáři už kvůli tomu, že metod a přístupů je více, ale myslím, že bych Ti byl schopen pomoct, pokud by jsi měl čas na složitější debatu. ;)

 
Nahoru Odpovědět
11.9.2015 17:16
Avatar
Odpovídá na katrincsak
Dominik Klapuch:11.9.2015 18:15

Jak zmínil David Novák tagy jsou super věc. Tam kde jsou je vždy využiju a tam kde ne, jsem zklamaný. :) Velikost písmen ani diakritiku řešit nemusíš, pokud použiješ správné kódování.

Nahoru Odpovědět
11.9.2015 18:15
Kód a data patří k sobě.
Avatar
Neaktivní uživatel:11.9.2015 18:29

A proč nepoužit SQL příkaz "LIKE"? Velikost a diakritiku taky řešit nemusí :)

Nahoru Odpovědět
11.9.2015 18:29
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Dominik Klapuch:11.9.2015 19:48

Protože na LIKE jako je %vyraz% nevyužiješ indexy, ty bys mohl využít pouze v případě vyraz% a jim podobných výrazů. Pokud bych nechtěl využít tagy, sáhl bych po fulltextu, kde můžeš napsat vyraz a je to mnohem rychlejší než %vyraz% s použítím LIKE.

Nahoru Odpovědět
11.9.2015 19:48
Kód a data patří k sobě.
Avatar
Odpovídá na Dominik Klapuch
Dominik Klapuch:11.9.2015 19:50

EDIT: *vyraz*

Nahoru Odpovědět
11.9.2015 19:50
Kód a data patří k sobě.
Avatar
katrincsak
Člen
Avatar
Odpovídá na Jindřich Máca
katrincsak:12.9.2015 9:30

Právě že se jedná o docela složité téma, tak jsem zatím chtěl jen nějaký nástřel teorie a pak případně až se do toho vnořím, tak bych už měl konkrétní otázky. Vím že to bude trvat několik hodin než to dám do kupy a než to zjistím. Línej si najít informace nejsem, nebo i testovat několik hodin ale když možností je více tak se aspoň rád nechám na směrovat.

 
Nahoru Odpovědět
12.9.2015 9:30
Avatar
katrincsak
Člen
Avatar
Odpovídá na Dominik Klapuch
katrincsak:12.9.2015 9:36

A jak vytvořit index, když nevím jaký je (znám 2 řetězce, nadpis a popis + hlavni kategorie a sub kategorie?

Logiku vidím v době kdy umožním zadat specifikace a tím i získám přesně dané informace, ale bez toho asi nevyužiji toto indexování v takové kvalitě ne?

 
Nahoru Odpovědět
12.9.2015 9:36
Avatar
joci
Člen
Avatar
Odpovídá na katrincsak
joci:12.9.2015 11:33

Ako uz bolo spomenute skus pouzit nejaky hotovy package https://packagist.org/search/?… sice nemam so ziadnym skusenosti ale za vyskusanie nic nedas.

Nahoru Odpovědět
12.9.2015 11:33
Svet patrí tím, ktorí sa neposerú.
Avatar
Odpovídá na katrincsak
Dominik Klapuch:12.9.2015 11:46

V dotazu si určíš "priority". Když budu hledat výraz Auto, tak chci, aby největší prioritu pro vrácené výsledky byly z nadpisu, poté z kategorie, sub-kategorie a poté z popisu. Pomocí triggeru si můžeš všechna data sypat do jedné tabulky a tam si třeba pak i určit jiné kódování a zároveň tak přijdeš o zdržování při joinech (možná).

Pokud se ti na výsledky typu výraz* nevrátí nic, můžeš po neuspěšném hledání použít jiné zástupné znaky, třeba *výraz* abys získal nějaká data.

Můžeš také kouknout na Elasticsearch (Elastic), využívá ho Mall a myslím, že i Heureka.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
12.9.2015 11:46
Kód a data patří k sobě.
Avatar
katrincsak
Člen
Avatar
Odpovídá na joci
katrincsak:12.9.2015 14:32

Vzhledem k tomu, že se php stále učím budu rád když budu vědět jak na to. Je spousta scriptu co jsem mohl okopírovat a jen upravit, ale přidám radši k tomu pár hodin na víc a udělám si vlastní script a vím do poslední čárky co přesně jak a proč. Na víc mám z toho pak radost, mohl bych třeba využít google vyhledávač na web. Každopádně i tak si rady cením, každá rada je dobrá a člověk má možnost o tom i přemýšlet, nebo to porovnat.

 
Nahoru Odpovědět
12.9.2015 14:32
Avatar
katrincsak
Člen
Avatar
Odpovídá na Dominik Klapuch
katrincsak:12.9.2015 14:36

To rozdělení jak jsi napsal, mě také jaksi napadlo a má to svojí logiku.. Od nejvíce výstižných informací po nejméně výstižné.

Určitě se juknu na Elasticsearch .

Koukal jsem i na fulltextové vyhledávání za pomocí BOOLEAN MODE v mysql ->
http://php.vrana.cz/…-v-mysql.php

nějaké zkušenosti ?

 
Nahoru Odpovědět
12.9.2015 14:36
Avatar
Odpovídá na katrincsak
Dominik Klapuch:12.9.2015 19:11

Ano, ten se běžně používá :) V souvislosti s vyhledáváním se také koukni jak správně rozvrhnout indexy a pro kontrolu si dotaz nech vysvětlit pomocí EXPLAIN. Je lepší, když do tabulky dáš více záznamů - řekněme 100 a víc.

Pokud s indexy a explain máš již zkušenosti, omlouvám se za nepodstatné informace.

Nahoru Odpovědět
12.9.2015 19:11
Kód a data patří k sobě.
Avatar
katrincsak
Člen
Avatar
katrincsak:14.9.2015 23:24

Tak všem moc děkuji za poskytnuté rady a z každé informaci si určitě něco beru. Možná se ještě dotaz nějaký objeví, ale již to bude konkrétní na danou věc. Na konec to určitě tak těžké nebude, stačí se jen odhodlat a začít psát, pak to jde samo.

Řešení bohužel mohu dát jenom jednomu a myslím že nejvíce si to zaslouží "Facedown".

10 dní volna/času na to bude stačit za 3 dny.. he he

Editováno 14.9.2015 23:25
 
Nahoru Odpovědět
14.9.2015 23:24
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 17 zpráv z 17.