Come indicizzare e trovare numeri con Lucene.NET?
-
08-07-2019 - |
Domanda
Ho implementato la ricerca full-text per un sito Web utilizzando Lucene.NET (Versione 2.0). L'indicizzazione e la ricerca funzionano bene, ma ho un problema. Se cerco numeri (numeri di telefono, numeri di prodotto ecc.) Come termini di ricerca, non ottengo alcun documento risultante.
Sto usando la classe Lucene.Net.Analysis.SimpleAnalyzer. Immagino di dover cambiare Analizzatore e / o Tokenizer.
Qualche consiglio?
Grazie!
Soluzione
Quando si crea un documento Lucene, è possibile selezionare diverse opzioni di indicizzazione per ciascun campo. Per i campi che non si desidera tokenizzare, è necessario selezionare l'opzione Field.Index.UN_TOKENIZED. Ciò manterrà intatti i tuoi numeri di telefono e i numeri di prodotto.
Vorrei anche consigliare di utilizzare StandardAnalyzer, poiché non elimina i numeri come SimpleAnalyzer.
È anche importante utilizzare lo stesso analizzatore sia per l'indicizzazione che per la ricerca, per ottenere risultati coerenti.