Нов съм в Lucene.Net Кой е най-добрият анализатор за използване в Lucene.Net? Освен това искам да знам как да използвам стоп думи и функции за произхождащи думи?
Функции на Lucene.Net
Отговори (3)
Аз също съм нов в Lucene.Net, но знам, че Simple Analyzer пропуска всички стоп думи и индексира всички токени/работи.
Ето връзка към малко информация за Lucene, между другото, .NET версията е почти перфектно, байт по байт пренаписано на версията на Java, така че документацията на Java трябва да работи добре в повечето случаи: http://darksleep.com/lucene/. Там има раздел за трите анализатора, прост, стоп и стандартен.
Не съм сигурен как Lucene.Net обработва произхождащите думи, но тази връзка, http://www.onjava.com/pub/a/onjava/2003/01/15/lucene.html?page=2, демонстрира как да създадете свой собствен анализатор в Java и използва PorterStemFilter, за да прави произволни думи.
...[Т]алгоритъмът на Porter stemming (или „Porter stemmer“) е процес за премахване на по-често срещаните морфологични и флексивни окончания от думите на английски език
Надявам се, че това е полезно.
Най-добрият анализатор, който намерих, е StandardAnalyzer, в който можете да посочите и стоп думите. Например :-
string indexFileLocation = @"C:\Index";
string stopWordsLocation = @"C:\Stopwords.txt";
var directory = FSDirectory.Open(new DirectoryInfo(indexFileLocation));
Analyzer analyzer = new StandardAnalyzer(
Lucene.Net.Util.Version.LUCENE_29, new FileInfo(stopWordsLocation));
Зависи от вашите изисквания. Ако вашите изисквания са изключително прости - напр. нечувствителни към главни и малки букви, без коренни търсения - тогава StandardAnalyzer е добър избор. Ако разгледате класа Analyzer и се запознаете с филтрите, по-специално TokenFilter, можете да упражнявате огромен контрол върху вашия индекс, като превъртите собствения си анализатор.
Стемерите са трудни и е важно да имате дълбоко разбиране за това от какъв тип стеминг наистина се нуждаете. Използвал съм стеммерите Snowball. Например думата „политика“ и „полиция“ имат един и същи корен в английския Snowball stemmer и получаването на попадения на документи с „политика“, когато думата за търсене „полиция“ не е толкова популярна. Приложих стратегии за поддръжка на търсене със основа и без основа, така че това може да бъде избегнато, но е важно да се разбере въздействието.
Пазете се от изкушения като стоп думи. Ако трябва да търсите фразата „да бъдеш или да не бъдеш“ и стандартните стоп думи са активирани, вашето търсене няма да успее да намери документи с тази фраза.