LUCENE-8093: Make TrimFilterFactory multi-term aware

This commit is contained in:
Alan Woodward 2017-12-13 14:39:15 +00:00
parent d6d2e3b2e3
commit 8eb5c696e4
3 changed files with 16 additions and 3 deletions

View File

@ -76,6 +76,8 @@ Improvements
configurable precision for non-spherical planet models.
(Ignacio Vera via David Smiley)
* LUCENE-8093: TrimFilterFactory implements MultiTermAwareComponent (Alan Woodward)
======================= Lucene 7.2.0 =======================
API Changes

View File

@ -21,6 +21,8 @@ import java.util.Map;
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.miscellaneous.TrimFilter;
import org.apache.lucene.analysis.util.AbstractAnalysisFactory;
import org.apache.lucene.analysis.util.MultiTermAwareComponent;
import org.apache.lucene.analysis.util.TokenFilterFactory;
/**
@ -35,7 +37,7 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
*
* @see TrimFilter
*/
public class TrimFilterFactory extends TokenFilterFactory {
public class TrimFilterFactory extends TokenFilterFactory implements MultiTermAwareComponent {
/** Creates a new TrimFilterFactory */
public TrimFilterFactory(Map<String,String> args) {
@ -47,7 +49,11 @@ public class TrimFilterFactory extends TokenFilterFactory {
@Override
public TrimFilter create(TokenStream input) {
final TrimFilter filter = new TrimFilter(input);
return filter;
return new TrimFilter(input);
}
@Override
public AbstractAnalysisFactory getMultiTermComponent() {
return this;
}
}

View File

@ -21,6 +21,11 @@ package org.apache.lucene.analysis.util;
* analysis component factory for use with partial terms in prefix queries,
* wildcard queries, range query endpoints, regex queries, etc.
*
* Components implementing this interface should not add or remove tokens from
* the token stream, and should be able to deal with special characters
* indicating that multi-term queries are required (eg slashes for regex, wildcard
* characters, etc)
*
* @lucene.experimental
*/
public interface MultiTermAwareComponent {