Class CoreParser
- java.lang.Object
-
- org.apache.lucene.queryparser.xml.CoreParser
-
- All Implemented Interfaces:
SpanQueryBuilder
,QueryBuilder
- Direct Known Subclasses:
CorePlusQueriesParser
public class CoreParser extends java.lang.Object implements QueryBuilder, SpanQueryBuilder
Assembles a QueryBuilder which uses only core Lucene Query objects
-
-
Field Summary
Fields Modifier and Type Field Description protected Analyzer
analyzer
protected java.lang.String
defaultField
static org.xml.sax.EntityResolver
DISALLOW_EXTERNAL_ENTITY_RESOLVER
protected QueryParser
parser
protected QueryBuilderFactory
queryFactory
protected SpanQueryBuilderFactory
spanFactory
-
Constructor Summary
Constructors Modifier Constructor Description CoreParser(java.lang.String defaultField, Analyzer analyzer)
Constructs an XML parser that creates a QueryParser for each UserQuery request.protected
CoreParser(java.lang.String defaultField, Analyzer analyzer, QueryParser parser)
CoreParser(Analyzer analyzer, QueryParser parser)
Construct an XML parser that uses a single instance QueryParser for handling UserQuery tags - all parse operations are synchronised on this parser
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addQueryBuilder(java.lang.String nodeName, QueryBuilder builder)
void
addSpanBuilder(java.lang.String nodeName, SpanQueryBuilder builder)
void
addSpanQueryBuilder(java.lang.String nodeName, SpanQueryBuilder builder)
protected org.xml.sax.EntityResolver
getEntityResolver()
Returns a SAXEntityResolver
to be used byDocumentBuilder
.protected org.xml.sax.ErrorHandler
getErrorHandler()
Subclass and override to return a SAXErrorHandler
to be used byDocumentBuilder
.Query
getQuery(org.w3c.dom.Element e)
SpanQuery
getSpanQuery(org.w3c.dom.Element e)
Query
parse(java.io.InputStream xmlStream)
Parses the given stream as XML file and returns aQuery
.(package private) SpanQuery
parseAsSpanQuery(java.io.InputStream xmlStream)
private org.w3c.dom.Document
parseXML(java.io.InputStream pXmlFile)
-
-
-
Field Detail
-
defaultField
protected java.lang.String defaultField
-
analyzer
protected Analyzer analyzer
-
parser
protected QueryParser parser
-
queryFactory
protected QueryBuilderFactory queryFactory
-
spanFactory
protected final SpanQueryBuilderFactory spanFactory
-
DISALLOW_EXTERNAL_ENTITY_RESOLVER
public static final org.xml.sax.EntityResolver DISALLOW_EXTERNAL_ENTITY_RESOLVER
-
-
Constructor Detail
-
CoreParser
public CoreParser(Analyzer analyzer, QueryParser parser)
Construct an XML parser that uses a single instance QueryParser for handling UserQuery tags - all parse operations are synchronised on this parser- Parameters:
parser
- A QueryParser which will be synchronized on during parse calls.
-
CoreParser
public CoreParser(java.lang.String defaultField, Analyzer analyzer)
Constructs an XML parser that creates a QueryParser for each UserQuery request.- Parameters:
defaultField
- The default field name used by QueryParsers constructed for UserQuery tags
-
CoreParser
protected CoreParser(java.lang.String defaultField, Analyzer analyzer, QueryParser parser)
-
-
Method Detail
-
parse
public Query parse(java.io.InputStream xmlStream) throws ParserException
Parses the given stream as XML file and returns aQuery
. By default this disallows external entities for security reasons.- Throws:
ParserException
-
parseAsSpanQuery
SpanQuery parseAsSpanQuery(java.io.InputStream xmlStream) throws ParserException
- Throws:
ParserException
-
addQueryBuilder
public void addQueryBuilder(java.lang.String nodeName, QueryBuilder builder)
-
addSpanBuilder
public void addSpanBuilder(java.lang.String nodeName, SpanQueryBuilder builder)
-
addSpanQueryBuilder
public void addSpanQueryBuilder(java.lang.String nodeName, SpanQueryBuilder builder)
-
getEntityResolver
protected org.xml.sax.EntityResolver getEntityResolver()
Returns a SAXEntityResolver
to be used byDocumentBuilder
. By default this returnsDISALLOW_EXTERNAL_ENTITY_RESOLVER
, which disallows the expansion of external entities (for security reasons). To restore legacy behavior, override this method to returnnull
.
-
getErrorHandler
protected org.xml.sax.ErrorHandler getErrorHandler()
Subclass and override to return a SAXErrorHandler
to be used byDocumentBuilder
. By default this returnsnull
so no error handler is used. This method can be used to redirect XML parse errors/warnings to a custom logger.
-
parseXML
private org.w3c.dom.Document parseXML(java.io.InputStream pXmlFile) throws ParserException
- Throws:
ParserException
-
getQuery
public Query getQuery(org.w3c.dom.Element e) throws ParserException
- Specified by:
getQuery
in interfaceQueryBuilder
- Throws:
ParserException
-
getSpanQuery
public SpanQuery getSpanQuery(org.w3c.dom.Element e) throws ParserException
- Specified by:
getSpanQuery
in interfaceSpanQueryBuilder
- Throws:
ParserException
-
-