Endeca Web Crawlerには、次の3つのURLノーマライザがあります。
- BasicURLNormalizer
- PassURLNormalizer
- RegexURLNormalizer
BasicURLNormalizerは次の変換を実行します。
- URLの先行および後続の空白を削除します。
- プロトコルを小文字にします(たとえば、HTTPをhttpに変更します)。
- ホスト名を小文字にします。
- ポートを正規化します(たとえば、http://xyz.com:80/index.htmlをhttp://xyz.com/index.htmlに変更します)。
- nullパスを正規化します(たとえば、http://xyz.comをhttp://xyz.com/index.htmlに変更します)。
- 参照を削除します(たとえば、http://xyz.com/about.html#historyをhttp://xyz.com/about.htmlに変更します)。
- 不要なパスを削除します。具体的には../のようなパスです。
これらの変換は、実際には
regex-normalize.xmlファイルによって実行されることに注意してください。
PassURLNormalizerは、いかなる変換も実行しません。なぜこのようなノーマライザが含まれているかというと、特定のスコープで1つ以上のノーマライザを定義する必要があるものの、実際の変換処理は不要である場合に便利だからです。
RegexURLNormalizerを利用すると、検出したすべてのURLまたは任意のURLに対して正規表現による置換を指定できます。これは、URLからセッションIDを除去するような変換で便利です。このクラスでは、urlnormalizer.regex.fileプロパティで指定されるファイルを使用します。
URLノーマライザのデフォルトの順序
urlnormalizer.orderプロパティのデフォルトのクラスは次のとおりです。
- org.apache.nutch.net.urlnormalizer.basic.BasicURLNormalizer
- org.apache.nutch.net.urlnormalizer.regex.RegexURLNormalizer