Package org.apache.lucene.queryparser.xml

# Class CoreParser

java.lang.Object
org.apache.lucene.queryparser.xml.CoreParser

All Implemented Interfaces:
  `SpanQueryBuilder`, `QueryBuilder`

Direct Known Subclasses:
  `CorePlusQueriesParser`

public class CoreParser extends Object implements SpanQueryBuilder
Assembles a QueryBuilder which uses only core Lucene Query objects

## Field Summary

Fields
Modifier and Type
Field
Description
`protected Analyzer`
`analyzer`
`protected String`
`defaultField`
`static final EntityResolver`
`DISALLOW_EXTERNAL_ENTITY_RESOLVER`
`protected QueryParser`
`parser`
`protected QueryBuilderFactory`
`queryFactory`
`protected final SpanQueryBuilderFactory`
`spanFactory`

## Constructor Summary

Constructors
Modifier
Constructor
Description
``
`CoreParser(String defaultField, Analyzer analyzer)`
Constructs an XML parser that creates a QueryParser for each UserQuery request.
`protected`
`CoreParser(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

Modifier and Type
Method
Description
`void`
`addQueryBuilder(String nodeName, QueryBuilder builder)`
`void`
`addSpanBuilder(String nodeName, SpanQueryBuilder builder)`
`void`
`addSpanQueryBuilder(String nodeName, SpanQueryBuilder builder)`
`protected EntityResolver`
`getEntityResolver()`
Returns a SAX `EntityResolver` to be used by `DocumentBuilder`.
`protected ErrorHandler`
`getErrorHandler()`
Subclass and override to return a SAX `ErrorHandler` to be used by `DocumentBuilder`.
`Query`
`getQuery(Element e)`
`SpanQuery`
`getSpanQuery(Element e)`
`Query`
`parse(InputStream xmlStream)`
Parses the given stream as XML file and returns a `Query`.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### defaultField

protected 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 EntityResolver DISALLOW_EXTERNAL_ENTITY_RESOLVER

## Constructor Details

### 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(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(String defaultField, Analyzer analyzer, QueryParser parser)

## Method Details

### parse

public Query parse(InputStream xmlStream) throws ParserException
Parses the given stream as XML file and returns a `Query`. By default this disallows external entities for security reasons.

Throws:
  `ParserException`

### addQueryBuilder

public void addQueryBuilder(String nodeName, QueryBuilder builder)

### addSpanBuilder

public void addSpanBuilder(String nodeName, SpanQueryBuilder builder)

### addSpanQueryBuilder

public void addSpanQueryBuilder(String nodeName, SpanQueryBuilder builder)

### getEntityResolver

protected EntityResolver getEntityResolver()
Returns a SAX `EntityResolver` to be used by `DocumentBuilder`. By default this returns `DISALLOW_EXTERNAL_ENTITY_RESOLVER`, which disallows the expansion of external entities (for security reasons). To restore legacy behavior, override this method to return `null`.

### getErrorHandler

protected ErrorHandler getErrorHandler()
Subclass and override to return a SAX `ErrorHandler` to be used by `DocumentBuilder`. By default this returns `null` so no error handler is used. This method can be used to redirect XML parse errors/warnings to a custom logger.

### getQuery

public Query getQuery(Element e) throws ParserException

Specified by:
  `getQuery` in interface `QueryBuilder`
Throws:
  `ParserException`

### getSpanQuery

public SpanQuery getSpanQuery(Element e) throws ParserException

Specified by:
  `getSpanQuery` in interface `SpanQueryBuilder`
Throws:
  `ParserException`