Jazykové odvození v textovém vyhledávání používá algoritmus, aby se pokusil dát do souvislosti slova odvozená ze společného základu (např. „běh“ by měl odpovídat slovu „běh“). To se liší od shody předpony (např. „modrá“ shoda „borůvka“), kterou chcete implementovat pro funkci automatického doplňování.
Chcete-li co nejefektivněji používat typeahead.js
s textovým vyhledáváním MongoDB bych navrhoval zaměřit se na prefetch
podpora v přepisu:
-
Vytvořte
keywords
kolekce, která má běžná slova (možná s počtem četnosti použití) používaná ve vaší sbírce. Tuto sbírku můžete vytvořit spuštěním Map/Reduce v celé kolekci máte index textového vyhledávání a seznam slov udržujte aktuální pomocí pravidelného Incremental Map/Reduce při přidávání nových dokumentů. -
Nechte svou aplikaci vygenerovat dokument JSON z
keywords
kolekce s jedinečnými klíčovými slovy (možná omezená na „populární“ klíčová slova na základě četnosti slov, aby byl seznam spravovatelný/relevantní).
Vygenerovaná klíčová slova JSON pak můžete použít pro automatické doplňování na straně klienta pomocí prefetch
typeahead funkce:
$('.mysearch .typeahead').typeahead({
name: 'mysearch',
prefetch: '/data/keywords.json'
});
typeahead.js
uloží do mezipaměti prefetch
Data JSON v localStorage pro vyhledávání na straně klienta. Po odeslání vyhledávacího formuláře může vaše aplikace používat MongoDB na straně serveru textové vyhledávání
vrátit úplné výsledky v pořadí podle relevance.