Возможности 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 для определения корней слов.

... [T] Алгоритм определения портера (или «стеммер Портера») - это процесс удаления наиболее распространенных морфологических и флексионных окончаний из слов в английском языке.

Я надеюсь, что это поможет.

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. Например, слова «политика» и «полиция» имеют один и тот же корень в словосочетании «Снежный ком» в английском языке, и поиск совпадений с «политикой» в документах происходит при не столь популярном поисковом слове «полиция». Я реализовал стратегии для поддержки ограниченного и несистемного поиска, так что этого можно избежать, но важно понимать влияние.

Остерегайтесь искушений, таких как стоп-слова. Если вам нужно выполнить поиск по фразе «быть или не быть» и включены стандартные стоп-слова, ваш поиск не сможет найти документы с этой фразой.

person RamblinRose    schedule 30.12.2016