Что анализатор я должен использовать для URL в lucene.net?

Идиома должна использовать поразрядное или - равный оператор для установки битов:

flags |= 0x04;

Для очистки немного идиома должна использовать поразрядно и с отрицанием:

flags &= ~0x04;

Иногда у Вас есть смещение, которое определяет Ваш бит, и затем идиома должна использовать, они объединились со сдвигом влево:

flags |= 1 << offset;
flags &= ~(1 << offset);
5
задан Juha Syrjälä 3 December 2009 в 18:21
поделиться

2 ответа

StandardAnalyzer, который использует StandardTokenizer, не токенизирует URL-адреса (хотя он распознает электронные письма и обрабатывает их как один токен). Вы видите, что это поведение по умолчанию - разделение на различные знаки препинания. Самым простым решением может быть использование собственного анализатора и предоставление UrlTokenizer, который расширяет / изменяет код в StandardTokenizer для токенизации URL-адресов. Что-то вроде:

public class MyAnalyzer extends Analyzer {

public MyAnalyzer() {
    super();
}

public TokenStream tokenStream(String fieldName, Reader reader) {
    TokenStream result = new MyUrlTokenizer(reader);
    result = new LowerCaseFilter(result);
    result = new StopFilter(result);
    result = new SynonymFilter(result);

    return result;
}

}

Где URLTokenizer разбивается на /, - _ и все, что вы хотите. Nutch также может иметь соответствующий код, но я не знаю, есть ли версия .NET.

Обратите внимание, что если у вас есть отдельное fieldName для URL-адресов, вы можете изменить приведенный выше код, используя StandardTokenizer по умолчанию, иначе используйте UrlTokenizer.

например

public TokenStream tokenStream(String fieldName, Reader reader) {
    TokenStream result = null;
            if (fieldName.equals("url")) {
                  result = new MyUrlTokenizer(reader);
            } else {
                  result = new StandardTokenizer(reader);
            }
5
ответ дан 14 December 2019 в 13:38
поделиться

Вам следует самостоятельно проанализировать URL-адрес (я полагаю, что существует как минимум один класс .Net, который может анализировать строку URL-адреса и выделять различные элементы), а затем добавить эти элементы (например, хост, или все, что вам нужно для фильтрации) в качестве ключевых слов; вообще не анализируйте их.

1
ответ дан 14 December 2019 в 13:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: