Настройка Nutch Regex-Normalize.xml - PullRequest
0 голосов
/ 17 ноября 2009

Я использую программное обеспечение для веб-поиска Nutch на основе Java. Чтобы предотвратить дублирование результатов (url) в результатах моего поискового запроса, я пытаюсь удалить (a.k.a. normalize) выражения 'jsessionid' из URL-адресов, индексируемых при запуске сканера Nutch для индексации моей интрасети. Однако мои изменения в $ NUTCH_HOME / conf / regex-normalize.xml (до запуска моего сканирования), похоже, не имеют никакого эффекта.

  1. Как я могу убедиться, что моя конфигурация regex-normalize.xml задействована для моего сканирования? и

  2. Какое регулярное выражение успешно удалит / нормализует выражения 'jsessionid' из URL во время сканирования / индексации?

Ниже приведено содержимое моего текущего файла regex-normalize.xml:

<?xml version="1.0"?>
<regex-normalize>
<regex>
 <pattern>(.*);jsessionid=(.*)$</pattern>
 <substitution>$1</substitution>
</regex>
<regex>
 <pattern>(.*);jsessionid=(.*)(\&amp;|\&amp;amp;)</pattern>
 <substitution>$1$3</substitution>
</regex>
<regex>
 <pattern>;jsessionid=(.*)</pattern>
 <substitution></substitution>
</regex>
</regex-normalize>

Вот команда, которую я выдаю для запуска моего (тестового) сканирования:

bin/nutch crawl urls -dir /tmp/test/crawl_test -depth 3 -topN 500

1 Ответ

3 голосов
/ 18 ноября 2009

Какую версию Nutch вы используете? Я не знаком с Nutch, но загрузка по умолчанию Nutch 1.0 уже содержит правило в regex-normalize.xml , которое, похоже, решает эту проблему.

<!-- removes session ids from urls (such as jsessionid and PHPSESSID) -->
<regex>
  <pattern>([;_]?((?i)l|j|bv_)?((?i)sid|phpsessid|sessionid)=.*?)(\?|&amp;|#|$)</pattern>
  <substitution>$4</substitution>
</regex>

Btw. regex-urlfilter.txt , похоже, тоже содержит что-то релевантное

# skip URLs containing certain characters as probable queries, etc.
-[?*!@=]

Тогда в nutch-default.xml есть некоторые настройки, которые вы, возможно, захотите проверить

urlnormalizer.order
urlnormalizer.regex.file
plugin.includes

Если это не помогает, может быть, это так: Как я могу заставить сборщик использовать пользовательский Nutch-config?

...