Appena iniziato con Lucene.Net. Ho indicizzato 100.000 righe utilizzando l'analizzatore standard, ho eseguito alcune query di test e ho notato che le query plurali non restituiscono risultati se il termine originale era singolare. Comprendo che l'analizzatore di palle di neve aggiunge il supporto per la derivazione, che suona bene. Tuttavia, mi chiedo se ci sono degli svantaggi nel gong con palle di neve oltre gli standard? Sto perdendo qualcosa andando con esso? Ci sono altri analizzatori là fuori da considerare?Lucene Standard Analyzer vs Snowball
risposta
Sì, utilizzando uno stemmer come Snowball, si perdono informazioni sulla forma originale del testo. A volte questo sarà utile, a volte no.
Ad esempio, Snowball sgancia "organizzazione" in "organo", quindi una ricerca di "organizzazione" restituirà risultati con "organo", senza alcuna penalità di punteggio.
Se questo è appropriato o meno dipende dal contenuto e dal tipo di query supportate (ad esempio, le ricerche sono molto semplici o gli utenti sono molto sofisticati e utilizzano la ricerca per filtrare in modo accurato il risultati). Potresti anche voler esaminare gli stemmer meno aggressivi, ad esempio KStem.
Ho appena capito che puoi anche fare una ricerca fuzzy come questo "canguro ~" che restituirà anche versioni singolari della parola, anche se sembra che impieghi un po 'più tempo per elaborare la query. – alchemical
@alchemical: mi raccomando davvero di non farlo. ~ è un operatore molto lento, e se il tuo utente fa qualcosa come cercare una frase sei un po 'fregato. Perché è così grave se i "canguri" vengono memorizzati come "canguro"? – Xodarap
OK, questo è bello sapere - per usare KStem hai bisogno di Solr? Hai bisogno di lavorare con il codice sorgente di Lucene per integrarlo? – alchemical
Ho appena finito un analizzatore che esegue la lemmatizzazione. È simile alla derivazione, tranne che utilizza il contesto per determinare il tipo di una parola (nome, verbo, ecc.) E usa quell'informazione per ricavare la radice. Mantiene anche la forma originale della parola nell'indice. Forse my library può esserti utile. Richiede Lucene Java, però, e non sono a conoscenza di alcun lemmatizzatore C# /. NET.
L'analizzatore snowball aumenterà il vostro richiamo, perché è molto più aggressivo rispetto all'analizzatore standard. Quindi è necessario valutare i risultati della ricerca per vedere se per i dati è necessario aumentare recall or precision.
- 1. Lucene Hebrew analyzer
- 2. lucene Fields vs. DocValues
- 3. Lucene QueryParser doveva funzionare con Custom Analyzer con stopfilter e porterstemfilter
- 4. Utilizzo di CLucene vs java lucene
- 5. Snowball Stemmer deriva solo ultima parola
- 6. PMD - Code Analyzer warnings
- 7. Solr query/field analyzer
- 8. Standard Methods vs Estensioni Metodi
- 9. Come specificare due campi in Lucene QueryParser?
- 10. Plagio Analyzer (confrontato con Web Content)
- 11. Lucene IndexWriter lento per aggiungere documenti
- 12. Xcode Analyzer - Ignora bersagli CocoaPods
- 13. MySql query analyzer - soluzioni gratuite
- 14. Discordanza standard Regex vs python regex
- 15. Ricerca SharePoint 2013 Standard vs Enterprise
- 16. Calibrazione fotocamera - Zhang vs. Gold Standard
- 17. Qt: classi Qt vs. standard C++
- 18. Azione <T> vs ritorno standard
- 19. Utilizzo di Apache Lucene per la ricerca
- 20. Lucene - alla ricerca di un campo del valore numerico
- 21. Lucene/python
- 22. Prestazioni Lucene
- 23. Perché Lucene QueryParser ha bisogno di un analizzatore
- 24. SQL Server Transaction Log Explorer/Analyzer
- 25. ElasticSearch Analyzer e Tokenizer per email
- 26. Viewer/Query Analyzer per database SQLite
- 27. statico Code Analyzer per C++ in Linux
- 28. Gestione + come personaggio speciale nella ricerca Lucene
- 29. Lucene queryparser con "/" in Query criteri
- 30. Errore semplice esempio lucene 4.0 con origine (non jar lib)
Se si utilizza l'analizzatore a palle di neve, si dovrebbero ottenere risultati per singolare/plurale, perché la palla di neve normalizzerà nella stessa forma. Sei sicuro di utilizzare lo stesso analizzatore per creare un indice e interrogarlo? – Skarab