it-swarm-eu.dev

Hledat - zobrazit položky začínající nebo zobrazit položky obsahující hledaný výraz?

Měla by při hledání seznamu hledané návratové položky začínat hledaným výrazem nebo by měly vracet položky obsahující hledaný výraz?

Příklad

Seznam značek kamer a vyhledávací pole. Při psaní "c" se vyhledávání vrátí se všemi slovy počínaje s "c" nebo vyhledává slova s ​​"c"?

V ideálním případě bych chtěl, aby se seznam zobrazoval „Canon“ nahoře, když uživatel vstoupí „can“.

6
Andres

Můžete mít oba způsoby, když máte všechna slova, která obsahují „c“, ale zobrazte slova, která začátek, s „c“ nahoře.

10
Hisham

Myslím, že zde můžete míchat dva nesouvisející problémy. Vyhledávání vs. filtrování je jedno a další „začíná“ vs. „obsahuje“.

Rozdíl mezi vyhledáváním a filtrováním je v zásadě, ať už to děláte za chodu, nebo provedete vyhledávání pouze tehdy, když uživatel k tomu dal výslovný příkaz - stiskli "vyhledávání" nebo "jít" nebo cokoli. Je pravda, že Google s jejich okamžitým vyhledáváním trochu komplikoval věci, a já to považuji za hledání předstírající, že se filtruje :). Podle vašeho příkladu se zdá, že opravdu mluvíte o filtrování.

Pokud jde o „začíná“ vs. „obsahuje“: když prohledáváte několik polí najednou nebo ve velkém množství dat, nebo když pole mohou obsahovat výrazy a ne pouze jednotlivá slova, řekla bych, že "obsahuje".

Například prohledáváte svou hudební sbírku napříč poli Umělec, Žánr, Album, Umělec, v tisících souborů a chcete najít „The Wall“. Nebudete muset psát „The“, protože polovina skladeb, alb a kapel začíná tím. Jednoduše zadejte "Wall" a skončíte s asi 10 výsledky. Nebo hledáte v telefonním seznamu svého telefonu Johna Smitha. Nechcete si pamatovat, zda je uveden jako John Smith nebo jako Smith, John. Jednoduše zadejte "Smith" a najděte ho.

Ale váš příklad je jiný. Je tu velmi malá sada nepružných značek, takže vím, co chci najít, a nechci, aby se jim něco bránilo. Pokud tedy napíšu N, očekávám, že najde Nikon, a rozhodně ne Sony nebo Minolta.

Stručně řečeno, pouze v několika velmi specifických případech bych použil „obsahuje“ na úrovni dopisů. Možná v lingvistickém prostředí, jako je například online slovník. Ale určitě bych to použil k hledání výrazů obsahujících konkrétní slova - a tato slova by stále musela začínat písmeny, které píšu, nejen je obsahovat.

4

Hlavním cílem je, aby vaše publikum rychle našlo, co hledají. Auto navrhnout je jen jeden způsob, jak toho dosáhnout.
Uživatel pravděpodobně očekává, že vyhledávací pole navrhne slova s ​​tím, co do něj napsali ", protože nemusí znát přesný název produktu (např. Zadáním" EOS ", aby získali fotoaparáty Canon). Pro podrobnější možnosti vyhledávání byste měli nabídnout „Podrobné vyhledávání“, kde vaši zákazníci mohou specifikovat věci jako: přesné znění, vyloučení, začátek/konec atd.

Také se podívejte na vzorové vyhledávací/navigační vzory:

http://www.alistapart.com/articles/design-patterns-faceted-navigation
http://www.webusability.co.uk/2010/faceted-search-current-trends-and-usability/

2
Geert

Existuje mnoho různých způsobů, jak s tím jít. Pokud byste však měli Google zkopírovat, nepoužili byste hledání zástupných znaků, jako byste navrhovali. Google hledá alternativní verze kořenového Wordu pomocí sofistikovaného fulltextového indexování. To má výhody jak v rychlosti, tak v přesnosti. Pak mají svůj "myslel jste ..." mechanismus, který je opravdu vynikající.

Nelze snadno vytvořit něco tak dobrého jako Google. Pro většinu implementací SQL je však k dispozici fulltextové indexování. Je to dokonce vestavěné do bezplatného Microsoft SQL Server Express . Existují také některé dobré open-source projekty jako Lucene (k dispozici pro Apache), které nabízejí tento druh funkcí.

Pokud jste chtěli kombinovat fulltextové vyhledávání s hledáním zástupných znaků a vaše servery zvládnou zatížení, můžete to určitě udělat. Záměrem by bylo ukázat výsledky fulltextového vyhledávání seřazené podle relevance a na konci toho připojit všechny další výsledky hledání zástupných znaků. Toto je řešení, které jsem přišel pro jeden z mých stránek.

2
Steve Wortham

Podívejte se na Endeca's Auto-design design pattern :

Automatické návrhy nabízejí návrhy vyhledávacích dotazů, zatímco uživatel zadává vyhledávací pole

Zejména:

Vyvolejte panel automatického navrhování až po zadání minimálně tří znaků.

1
Antony Quinn