Package org.apache.nutch.urlfilter.fast
Class FastURLFilter
java.lang.Object
org.apache.nutch.urlfilter.fast.FastURLFilter
- All Implemented Interfaces:
Configurable,URLFilter,Pluggable
Filters URLs based on a file of regular expressions using host/domains
matching first. The default policy is to accept a URL if no matches are
found.
Rule Format:
Host www.example.org DenyPath /path/to/be/excluded DenyPath /some/other/path/excluded # Deny everything from *.example.com and example.com Domain example.com DenyPath .* Domain example.org DenyPathQuery /resource/.*?action=exclude
Host rules are evaluated before Domain rules. For
Host rules the entire host name of a URL must match while the
domain names in Domain rules are considered as matches if the
domain is a suffix of the host name (consisting of complete host name parts).
Shorter domain suffixes are checked first, a single dot
"." as "domain name" can be used to specify
global rules applied to every URL.
E.g., for "www.example.com" the rules given above are looked up in the
following order:
- check "www.example.com" whether host-based rules exist and whether one of them matches
- check "www.example.com" for domain-based rules
- check "example.com" for domain-based rules
- check "com" for domain-based rules
- check for global rules ("
Domain .")
file:/path/file.txt are checked for global rules only. URLs
which fail to be parsed as URL are always rejected.
For rules either the URL path (DenyPath) or path and query
(DenyPathQuery) are checked whether the given
Java Regular expression is found (see
Matcher.find()) in the URL path (and query).
Rules are applied in the order of their definition. For better performance,
regular expressions which are simpler/faster or match more URLs should be
defined earlier.
Comments in the rule file start with the # character and reach
until the end of the line.
The rules file is defined via the property urlfilter.fast.file,
the default name is fast-urlfilter.txt.
In addition, it can filter based on the length of the whole URL, its path element or
its query element. See urlfilter.fast.url.* configurations.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classRule forDenyPath .*orDenyPath .?static classstatic classstatic class -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final org.slf4j.Loggerstatic final Stringstatic final Stringstatic final Stringstatic final StringFields inherited from interface org.apache.nutch.net.URLFilter
X_POINT_ID -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionInterface for a filter that transforms a URL: it can pass the original URL through or "delete" the URL by returning nullgetConf()voidvoidsetConf(Configuration conf)
-
Field Details
-
LOG
protected static final org.slf4j.Logger LOG -
URLFILTER_FAST_FILE
- See Also:
-
URLFILTER_FAST_MAX_LENGTH
- See Also:
-
URLFILTER_FAST_PATH_MAX_LENGTH
- See Also:
-
URLFILTER_FAST_QUERY_MAX_LENGTH
- See Also:
-
-
Constructor Details
-
FastURLFilter
public FastURLFilter()
-
-
Method Details
-
setConf
- Specified by:
setConfin interfaceConfigurable
-
getConf
- Specified by:
getConfin interfaceConfigurable
-
filter
Description copied from interface:URLFilterInterface for a filter that transforms a URL: it can pass the original URL through or "delete" the URL by returning null -
reloadRules
- Throws:
IOException
-