Функции на Lucene.Net

Нов съм в Lucene.Net Кой е най-добрият анализатор за използване в Lucene.Net? Освен това искам да знам как да използвам стоп думи и функции за произхождащи думи?


person user41625    schedule 28.11.2008    source източник


Отговори (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“) е процес за премахване на по-често срещаните морфологични и флексивни окончания от думите на английски език

Надявам се, че това е полезно.

person Carl    schedule 02.12.2008

Най-добрият анализатор, който намерих, е 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));
person Febin J S    schedule 06.06.2011

Зависи от вашите изисквания. Ако вашите изисквания са изключително прости - напр. нечувствителни към главни и малки букви, без коренни търсения - тогава StandardAnalyzer е добър избор. Ако разгледате класа Analyzer и се запознаете с филтрите, по-специално TokenFilter, можете да упражнявате огромен контрол върху вашия индекс, като превъртите собствения си анализатор.

Стемерите са трудни и е важно да имате дълбоко разбиране за това от какъв тип стеминг наистина се нуждаете. Използвал съм стеммерите Snowball. Например думата „политика“ и „полиция“ имат един и същи корен в английския Snowball stemmer и получаването на попадения на документи с „политика“, когато думата за търсене „полиция“ не е толкова популярна. Приложих стратегии за поддръжка на търсене със основа и без основа, така че това може да бъде избегнато, но е важно да се разбере въздействието.

Пазете се от изкушения като стоп думи. Ако трябва да търсите фразата „да бъдеш или да не бъдеш“ и стандартните стоп думи са активирани, вашето търсене няма да успее да намери документи с тази фраза.

person RamblinRose    schedule 30.12.2016