Descrizione del linguaggio nella ricerca testuale usa un algoritmo per cercare di mettere in relazione parole derivate da una base comune (es. "running" dovrebbe corrispondere a "run"). È diverso dalla corrispondenza del prefisso (ad es. "blu" corrispondente a "mirtillo") che desideri implementare per una funzione di completamento automatico.
Per utilizzare nel modo più efficace typeahead.js
con la ricerca di testo MongoDB suggerirei di concentrarmi sul prefetch
supporto in typehead:
-
Crea una
keywords
raccolta che contiene le parole comuni (forse con conteggio della frequenza di utilizzo) utilizzate nella tua raccolta. Puoi creare questa raccolta eseguendo una mappa/riduci nella raccolta hai l'indice di ricerca del testo e mantieni aggiornato l'elenco di parole utilizzando un periodico Mappa/Riduci incrementale man mano che vengono aggiunti nuovi documenti. -
Chiedi alla tua applicazione di generare un documento JSON dalle
keywords
raccolta con le parole chiave univoche (magari limitate a parole chiave "popolari" in base alla frequenza delle parole per mantenere l'elenco gestibile/rilevante).
È quindi possibile utilizzare le parole chiave generate JSON per il completamento automatico lato client con il prefetch
di typeahead caratteristica:
$('.mysearch .typeahead').typeahead({
name: 'mysearch',
prefetch: '/data/keywords.json'
});
typeahead.js
memorizzerà nella cache il prefetch
Dati JSON in localStorage per ricerche lato client. Quando il modulo di ricerca viene inviato, la tua domanda può utilizzare il lato server MongoDB ricerca di testo
per restituire i risultati completi in ordine di pertinenza.