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
keywordskolekce, 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
keywordskolekce 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.