it-swarm-eu.dev

Uživatelské rozhraní vyhledávacího pole - „všechna slova“, „částečná shoda“, „přesná fráze“

Navrhuji stolní aplikaci (nudné účetní věci) a mám funkci „vyhledávacího produktu“.

Chci mít pěkné, ale jednoduché „chytré“ vyhledávací pole. V současné době vyhledávací pole funguje tak, že rozdělí všechna zadaná slova a vyhledá všechny záznamy, které se částečně shodují nějaké z nich.

Nyní čelím následujícímu dilematu: Opravdu chci poskytnout způsob, jak určit, zda se uživatel chce shodovat nějaké nebo všechny zadaná slova. Jaký by byl dobrý přístup?

Dalším problémem je, že možná uživatel chce provést přesnou shodu. Znovu chci, aby aplikace byla snadno použitelná.

V tuto chvíli jsem do formuláře hodil tři přepínače, ale uvnitř se cítím špinavý ... nějaké názory?

21
Leonardo Herrera

Google to vyřešil už dávno - nemá smysl znovuobjevovat kolo. ;)

Navrhuji, abyste odstranili potřebu výběru a provedli tři vyhledávání současně: "přesná fráze" , „odpovídají všem slovům“ , AND „shodují se všemi“ . Poté se sjednotí („unijní“ SQL) tyto výsledky v tomto pořadí a předloží je uživateli.

Nevýhody:

  • větší zatížení databáze.

Pozitivní:

  • přirozenější pro uživatele: pokud někdo zadá několik slov, pravděpodobně ví, co hledá; nestřílejí ve tmě a snaží se získat alespoň jedno slovo správně
  • odpovídá zkušenostem ve vyhledávačích
  • ušetří jedno kliknutí v interakci = šetří čas.

Nezapomeňte z vyhledávací fráze odstranit šumová slova a normalizovat případy/konjugace atd .; pomůže najít výsledky, které uživatelé potřebují, i když zadají hledaná slova ve špatném případě/napjatém/s nesprávným článkem.

Zajistěte také, aby vyhledávání fungovalo pouze s klávesnicí (tj. Bez nutení uživatele používat myš. <search phrase> <Enter> by mělo stačit k dosažení výsledků).

26
Erion

Můj osobní názor je, že byste uživateli měli poskytnout způsob upřesnění vyhledávání, protože:

  1. Uvedl jste to jako svůj cíl („Opravdu chci ...“) a bez ohledu na to, jaký automatický přístup zvolíte, nedovolíte uživateli, aby si vybral.
  2. Gmail (což je aplikace - více podobná vaší vlastní aplikaci než vyhledávání na webu) vám neumožňuje zobrazit a upřesnit možnosti vyhledávání.
  3. Dokonce i běžné vyhledávání na Googlu umožňuje uživateli upřesnit výsledky ručně, tj. Pokud je vyhledávací řetězec v uvozovkách, vyhledá jej jako celek.
  4. Jako zkušený uživatel, pokud znám svá kritéria, dělám pro mě automatické rozhodování a přesouvám své výsledky podle nějakého algoritmu, který nevím, opravdu proti mně pracuje.

Způsob, jakým bych to navrhl, je poněkud podobný tomu, co navrhl Chris.

Převzato z DeepDyvealt text

Jakmile stisknete tlačítko „upřesnit“, můžete okamžitě otevřít rozevírací seznam, nebo dokonce použít malý dialog, pokud v budoucnu hodláte přidat další možnosti vyhledávání.

5
Dan Barak

Pokud je hlavním zájmem prostor, uvažovali jste o použití rozbalovací nabídky? I když možná ne brilantní řešení (protože vyžaduje více kliknutí), zabralo by to méně místa než sada přepínačů.

Aktuální možnost by se objevila s expandérem, který by umožnil další volby.

       +-----------------+---+ +---------------------+ +----+
Search | exact phrase    | V | |                     | | Go |
       +-----------------+---+ +---------------------+ +----+
       | all words           |
       | any words           |
       | exact phrase        |
       +---------------------+

(omluvte špatné umění ASCII)

Upřesněním by mohlo být provedení rozevíracího seznamu, když se myš vznáší nad expandérem, než aby uživatel musel kliknout, ale opět to není ideální řešení.

4
ChrisF

Zabil bych možnosti vyhledávání - nemyslím si, že si to vaši uživatelé myslí, ale jak jde UMantra, otestujte ji se skutečnými uživateli a uvidíte, co si myslí.

Vyhledávače obvykle upřednostňují tyto priority:

  1. Pokuste se najít celou věc (AND)
  2. Zkuste společně najít přítomnost jednotlivých slov
  3. Zkuste a najděte fragmenty slov (stonky - napíšete „kopání“ odpovídá také kopu)
2
Julian H

Rozhodně souhlasíte s Erionem - není třeba, aby si uživatel vybral něco takového - nechte svůj vyhledávací nástroj (ať už je to cokoli) udělat za vás.

Bez ohledu na to, jakou technologii používá vaše back-end pro vyhledávání, existují způsoby, jak uprednostnit výsledky podle libovolných kritérií (tj. Stejně jako Google). Některé mohou být pro tuto věc obtížnější než jiné, ale tuto úroveň organizace výsledků vyhledávání může poskytnout i základní fulltextové indexování SQL Serveru.

Jen se rozhodněte pro co nejlepší uživatelský zážitek a nechte své inženýry (nebo vývojáře, pokud je to nutné), aby to fungovalo. To jsou tam, pro co jsou. Protože jsem také inženýr, můžu to říct :)

1
Charles Boyung

Pokud jste zvědaví, fulltextové vyhledávače fungují nejčastěji pomocí TD-IDF bodování. To znamená Termín Frekvence-inverzní frekvence dokument . Gist je, že dokument je důležitější, pokud se v něm vyhledávací dotaz objevuje velmi často, je to diskontováno počtem dokumentů, které se slovo celkově objevuje.

0
CambridgeMike