Class JunkFilterEncodingDetector
- All Implemented Interfaces:
Serializable,org.apache.tika.config.SelfConfiguring,org.apache.tika.detect.EncodingDetector,org.apache.tika.detect.MetaEncodingDetector
MetaEncodingDetector that arbitrates charset candidates by
asking a TextQualityDetector which decoded candidate looks
most like natural text.
Each base EncodingDetector in the
CompositeEncodingDetector chain emits
candidates into the EncodingDetectorContext. This meta detector
then reads the raw probe bytes, decodes them under each unique candidate
charset, scores each decode with TextQualityDetector.score(java.lang.String), and
picks the highest-scoring candidate (the score is cross-script comparable,
so a plain argmax suffices). BOM-declared, meta-tag-declared, structural,
and statistical candidates all compete on the same footing — quality of the
resulting decode is the sole criterion at this layer.
The TextQualityDetector implementation is discovered via
ServiceLoader. When no implementation is on the classpath,
this detector becomes a no-op: detect(org.apache.tika.io.TikaInputStream, org.apache.tika.metadata.Metadata, org.apache.tika.parser.ParseContext) returns an empty list
and CompositeEncodingDetector falls
back to its default confidence-based ordering.
- Since:
- Apache Tika 4.0.0 (TIKA-4720)
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionJunkFilterEncodingDetector(org.apache.tika.quality.TextQualityDetector qualityDetector) Test-only / deterministic-wiring constructor. -
Method Summary
Modifier and TypeMethodDescriptionList<org.apache.tika.detect.EncodingResult>detect(org.apache.tika.io.TikaInputStream tis, org.apache.tika.metadata.Metadata metadata, org.apache.tika.parser.ParseContext parseContext) intvoidsetReadLimit(int readLimit)
-
Constructor Details
-
JunkFilterEncodingDetector
public JunkFilterEncodingDetector() -
JunkFilterEncodingDetector
public JunkFilterEncodingDetector(org.apache.tika.quality.TextQualityDetector qualityDetector) Test-only / deterministic-wiring constructor.
-
-
Method Details
-
getReadLimit
public int getReadLimit() -
setReadLimit
public void setReadLimit(int readLimit) -
detect
public List<org.apache.tika.detect.EncodingResult> detect(org.apache.tika.io.TikaInputStream tis, org.apache.tika.metadata.Metadata metadata, org.apache.tika.parser.ParseContext parseContext) throws IOException - Specified by:
detectin interfaceorg.apache.tika.detect.EncodingDetector- Throws:
IOException
-