Při vyhledávání s návrhovým polem založeným na Ajaxu, kolik písmen by se mělo napsat, než začne navrhovat výsledky? 1,2,3 ..
Sekundární pořadí
Pokud máte další faktor, který může výsledky hodnotit (např. „Popularita“, „kuakeliho hodnost“):
(zhruba: SELECT TOP 10 FROM Stuff WHERE Name LIKE "x*" ORDER BY Rank
)
Pokud toto hodnocení nemáte, můžete začít i po prvním dopise, ale výsledky nejsou tak užitečné. Přesto neexistuje žádný použitelnost důvod, proč začít s řazeným seznamem:
SELECT TOP 10 FROM Stuff WHERE Name LIKE "x*" ORDER BY Name
důvody výkon
Thee je několik tradičních důvodů pro oddálení dotazu:
Toho je obvykle dosaženo zahájením vyhledávání, pokud nebylo stisknuto žádné tlačítko po dobu několika posledních stovek milisekund, nebo od začátku až po minimální délce řetězce.
Zbývá jeden případ (na který si vzpomenu), kde by začátek po [~ # ~] n [~ # ~] th klíč mohl zlepšit použitelnost: Klamavé zápasy. Pokud váš vyhledávací fond obsahuje takové prvky:
SDBXXFDR 1722 Lengthy
SDBXXFDR 1723 Still Lengthy
...
SDBXXFDR 1799 Short
SOBXXFDR 1972 Lengthy with ripples
A stačí napsat "S", výsledky "SD" mohou skrýt SO jeden, šance na výběr špatného je poměrně vysoká. Nicméně, to vypadá velmi konstrukčně a já jsem Nejste si jisti, zda je přírůstkové vyhledávání vůbec dobrým řešením, pokud by to byl problém.
Funkce automatického doplňování je optimálně podložena strukturou nazvanou Trie .
Při použití trie byste dokonce nemuseli nastavovat dolní hranici znaků. Hledání se provádí v O(n) kde n je délka textu dotazu a je nezávislá (většinou) na počtu položek vyhledávání, které jsou v databázi.
Podívejte se prosím na implementaci trie založenou na node.js, kterou jsem provedl - MyTriePOC .
Z pohledu uživatelské zkušenosti, pokud skutečně nastavujete dolní limit, je doporučeným postupem poskytnout nápovědu, která uživateli dá pokyn, aby pokračoval v psaní dalších znaků, aby bylo dosaženo nejlepších výsledků