protected TokenStreamComponents createComponents(final String fieldName, final Reader reader) {
final TupleTokenizer source = new TupleTokenizer(reader);
TokenStream sink = new TokenTypeFilter(source, new int[] {TupleTokenizer.BNODE,
TupleTokenizer.DOT});
final DatatypeAnalyzerFilter tt = new DatatypeAnalyzerFilter(matchVersion, sink, anyURIAnalyzer, stringAnalyzer);
for (final Entry<Object, Analyzer> e : regLitAnalyzers.entrySet()) {
tt.register((char[]) e.getKey(), e.getValue());
}
sink = new PositionAttributeFilter(tt);
sink = new SirenPayloadFilter(sink);
return new TokenStreamComponents(source, sink);
}