Example usage for org.apache.lucene.queryparser.classic ParseException ParseException

List of usage examples for org.apache.lucene.queryparser.classic ParseException ParseException

Introduction

In this page you can find the example usage for org.apache.lucene.queryparser.classic ParseException ParseException.

Prototype

public ParseException(String message) 

Source Link

Document

Constructor with message.

Usage

From source file:com.github.rnewson.couchdb.lucene.couchdb.FieldType.java

License:Apache License

public static long toDate(final Object obj) throws ParseException {
    if (obj instanceof Date) {
        return ((Date) obj).getTime();
    }/*from  w ww .  j  a  v a2 s . c om*/
    try {
        return DateUtils.parseDate(obj.toString().toUpperCase(), DATE_PATTERNS).getTime();
    } catch (final java.text.ParseException e) {
        throw new ParseException(e.getMessage());
    }
}

From source file:com.github.rnewson.couchdb.lucene.TypedField.java

License:Apache License

public TypedField(final String string) throws ParseException {
    final Matcher matcher = PATTERN.matcher(string);

    if (!matcher.matches()) {
        throw new ParseException("Field '" + string + "' not recognized.");
    }/*from w ww.j  a  v a2s.c om*/

    this.name = matcher.group(1);
    try {
        this.type = matcher.group(3) == null ? FieldType.STRING
                : FieldType.valueOf(matcher.group(3).toUpperCase());
    } catch (final IllegalArgumentException e) {
        throw new ParseException("Unrecognized type '" + matcher.group(3) + "'");
    }
}

From source file:com.mathworks.xzheng.extsearch.queryparser.CustomQueryParser.java

License:Apache License

protected final Query getWildcardQuery(String field, String termStr) throws ParseException {
    throw new ParseException("Wildcard not allowed");
}

From source file:com.mathworks.xzheng.extsearch.queryparser.CustomQueryParser.java

License:Apache License

protected Query getFuzzyQuery(String field, String term, float minSimilarity) throws ParseException {
    throw new ParseException("Fuzzy queries not allowed");
}

From source file:org.alfresco.solr.query.Solr4QueryParser.java

License:Open Source License

/**
 * @param field//from  w w w. jav  a2s  . c om
 * @param queryText
 * @param analysisMode
 * @param luceneFunction
 * @return the query
 * @throws ParseException
 * @throws IOException
 */
@SuppressWarnings("deprecation")
public Query getFieldQuery(String field, String queryText, AnalysisMode analysisMode,
        LuceneFunction luceneFunction) throws ParseException {
    try {
        if (field.equals(FIELD_PATH)) {
            return createPathQuery(queryText, false);
        } else if (field.equals(FIELD_PATHWITHREPEATS)) {
            return createPathQuery(queryText, true);
        } else if (field.equals(FIELD_TEXT)) {
            return createTextQuery(queryText, analysisMode, luceneFunction);
        } else if (field.equals(FIELD_ID)) {
            return createIdQuery(queryText);
        } else if (field.equals(FIELD_SOLR4_ID)) {
            return createSolr4IdQuery(queryText);
        } else if (field.equals(FIELD_DBID)) {
            return createDbidQuery(queryText);
        } else if (field.equals(FIELD_ACLID)) {
            return createAclIdQuery(queryText);
        } else if (field.equals(FIELD_OWNER)) {
            return createOwnerQuery(queryText);
        } else if (field.equals(FIELD_OWNERSET)) {
            return createOwnerSetQuery(queryText);
        } else if (field.equals(FIELD_READER)) {
            return createReaderQuery(queryText);
        } else if (field.equals(FIELD_READERSET)) {
            return createReaderSetQuery(queryText);
        } else if (field.equals(FIELD_AUTHORITY)) {
            /*
            * ACL DOCUMENTATION STARTS HERE
            * This creates the query that applies the ACL filter
            */
            return createAuthorityQuery(queryText);
        } else if (field.equals(FIELD_AUTHORITYSET)) {
            /*
            * ACL DOCUMENTATION STARTS HERE
            * This creates the query that applies the ACL filter
            */
            return createAuthoritySetQuery(queryText);
        } else if (field.equals(FIELD_DENIED)) {
            return createDeniedQuery(queryText);
        } else if (field.equals(FIELD_DENYSET)) {
            return createDenySetQuery(queryText);
        } else if (field.equals(FIELD_ISROOT)) {
            return createIsRootQuery(queryText);
        } else if (field.equals(FIELD_ISCONTAINER)) {
            return createIsContainerQuery(queryText);
        } else if (field.equals(FIELD_ISNODE)) {
            return createIsNodeQuery(queryText);
        } else if (field.equals(FIELD_TX)) {
            return createTransactionQuery(queryText);
        } else if (field.equals(FIELD_INTXID)) {
            return createInTxIdQuery(queryText);
        } else if (field.equals(FIELD_INACLTXID)) {
            return createInAclTxIdQuery(queryText);
        } else if (field.equals(FIELD_PARENT)) {
            return createParentQuery(queryText);
        } else if (field.equals(FIELD_PRIMARYPARENT)) {
            return createPrimaryParentQuery(queryText);
        } else if (field.equals(FIELD_QNAME)) {
            return createQNameQuery(queryText);
        } else if (field.equals(FIELD_PRIMARYASSOCQNAME)) {
            return createPrimaryAssocQNameQuery(queryText);
        } else if (field.equals(FIELD_PRIMARYASSOCTYPEQNAME)) {
            return createPrimaryAssocTypeQNameQuery(queryText);
        } else if (field.equals(FIELD_ASSOCTYPEQNAME)) {
            return createAssocTypeQNameQuery(queryText);
        } else if (field.equals(FIELD_CLASS)) {
            ClassDefinition target = QueryParserUtils.matchClassDefinition(searchParameters.getNamespace(),
                    namespacePrefixResolver, dictionaryService, queryText);
            if (target == null) {
                return new TermQuery(new Term(FIELD_TYPE, "_unknown_"));
            }
            return getFieldQuery(target.isAspect() ? FIELD_ASPECT : FIELD_TYPE, queryText, analysisMode,
                    luceneFunction);
        } else if (field.equals(FIELD_TYPE)) {
            return createTypeQuery(queryText, false);
        } else if (field.equals(FIELD_EXACTTYPE)) {
            return createTypeQuery(queryText, true);
        } else if (field.equals(FIELD_ASPECT)) {
            return createAspectQuery(queryText, false);
        } else if (field.equals(FIELD_EXACTASPECT)) {
            return createAspectQuery(queryText, true);
        } else if (isPropertyField(field)) {
            Query query = attributeQueryBuilder(field, queryText, new FieldQuery(), analysisMode,
                    luceneFunction);
            return query;
        } else if (field.equals(FIELD_ALL)) {
            return createAllQuery(queryText, analysisMode, luceneFunction);
        } else if (field.equals(FIELD_ISUNSET)) {
            return createIsUnsetQuery(queryText, analysisMode, luceneFunction);
        } else if (field.equals(FIELD_ISNULL)) {
            return createIsNullQuery(queryText, analysisMode, luceneFunction);
        } else if (field.equals(FIELD_ISNOTNULL)) {
            return createIsNotNull(queryText, analysisMode, luceneFunction);
        } else if (field.equals(FIELD_EXISTS)) {
            return createExistsQuery(queryText, analysisMode, luceneFunction);
        } else if (QueryParserUtils.matchDataTypeDefinition(searchParameters.getNamespace(),
                namespacePrefixResolver, dictionaryService, field) != null) {
            return createDataTypeDefinitionQuery(field, queryText, analysisMode, luceneFunction);
        } else if (field.equals(FIELD_FTSSTATUS)) {
            return createTermQuery(field, queryText);
        } else if (field.equals(FIELD_TXID)) {
            return createTxIdQuery(queryText);
        } else if (field.equals(FIELD_ACLTXID)) {
            return createAclTxIdQuery(queryText);
        } else if (field.equals(FIELD_TXCOMMITTIME)) {
            return createTxCommitTimeQuery(queryText);
        } else if (field.equals(FIELD_ACLTXCOMMITTIME)) {
            return createAclTxCommitTimeQuery(queryText);
        } else if (field.equals(FIELD_TAG)) {
            return createTagQuery(queryText);
        } else if (field.equals(FIELD_SITE)) {
            return createSiteQuery(queryText);
        } else if (field.equals(FIELD_PNAME)) {
            return createPNameQuery(queryText);
        } else if (field.equals(FIELD_NPATH)) {
            return createNPathQuery(queryText);
        } else if (field.equals(FIELD_TENANT)) {
            return createTenantQuery(queryText);
        } else if (field.equals(FIELD_ANCESTOR)) {
            return createAncestorQuery(queryText);
        } else if (field.equals(FIELD_FINGERPRINT)) {
            String[] parts = queryText.split("_");
            Collection values = null;
            String nodeId = parts[0];

            JSONObject json = (JSONObject) request.getContext().get(AbstractQParser.ALFRESCO_JSON);
            String fingerPrint = null;
            if (json != null) {
                //Was the fingerprint passed in
                String fingerPrintKey = "fingerprint." + nodeId;
                if (json.has(fingerPrintKey)) {
                    fingerPrint = (String) json.get("fingerprint." + nodeId);
                    if (fingerPrint != null) {
                        List l = new ArrayList();
                        String[] hashes = fingerPrint.split(" ");
                        for (String hash : hashes) {
                            l.add(hash);
                        }
                        values = l;
                    }
                }
            } else {
                json = new JSONObject();
            }

            //Is the fingerprint in the local SolrContentStore
            if (values == null) {
                long dbid = fetchDBID(nodeId);
                if (dbid == -1 && isNumber(nodeId)) {
                    dbid = Long.parseLong(nodeId);
                }

                if (dbid > -1) {
                    SolrInputDocument solrDoc = solrContentStore.retrieveDocFromSolrContentStore(
                            AlfrescoSolrDataModel.getTenantId(TenantService.DEFAULT_DOMAIN), dbid);
                    if (solrDoc != null) {
                        SolrInputField mh = solrDoc.getField("MINHASH");
                        if (mh != null) {
                            values = mh.getValues();
                        }
                    }
                }
            }

            String shards = this.solrParams.get("shards");
            if (values == null && shards != null) {
                //we are in distributed mode
                //Fetch the fingerPrint from the shards.
                //The UUID and DBID will both work for method call.
                values = fetchFingerPrint(shards, nodeId);
            }

            //If we're in distributed mode then add the fingerprint to the json
            if (values != null && shards != null && fingerPrint == null) {
                ModifiableSolrParams newParams = new ModifiableSolrParams();
                newParams.add(solrParams);
                solrParams = newParams;
                json.put("fingerprint." + nodeId, join(values, " "));
                String jsonString = json.toString();
                newParams.add(AbstractQParser.ALFRESCO_JSON, jsonString);
                request.getContext().put(AbstractQParser.ALFRESCO_JSON, json);
                request.setParams(newParams);
            }

            return createFingerPrintQuery(field, queryText, values, analysisMode, luceneFunction);

        } else {
            return getFieldQueryImpl(field, queryText, analysisMode, luceneFunction);
        }

    } catch (SAXPathException e) {
        throw new ParseException("Failed to parse XPath...\n" + e.getMessage());
    } catch (IOException e) {
        throw new ParseException("IO: " + e.getMessage());
    }

}

From source file:org.alfresco.solr.query.Solr4QueryParser.java

License:Open Source License

private Query getFieldQueryImplWithIOExceptionWrapped(String field, String queryText, AnalysisMode analysisMode,
        LuceneFunction luceneFunction) throws ParseException {
    try {/*from   w ww  . j  ava2  s.  c o m*/
        return getFieldQueryImpl(field, queryText, analysisMode, luceneFunction);
    } catch (IOException e) {
        throw new ParseException("IO: " + e.getMessage());
    }
}

From source file:org.alfresco.solr.query.Solr4QueryParser.java

License:Open Source License

/**
 * @param field//from w ww  . j  av  a 2 s  .  com
 * @param part1
 * @param part2
 * @param includeLower
 * @param includeUpper
 * @param analysisMode
 * @param expandedFieldName
 * @param propertyDef
 * @param tokenisationMode
 * @return
 * @throws ParseException
 */
private Query buildTextMLTextOrContentRange(String field, String part1, String part2, boolean includeLower,
        boolean includeUpper, AnalysisMode analysisMode, String expandedFieldName,
        PropertyDefinition propertyDef, IndexTokenisationMode tokenisationMode) throws ParseException {
    BooleanQuery.Builder booleanQuery = new BooleanQuery.Builder();
    List<Locale> locales = searchParameters.getLocales();
    List<Locale> expandedLocales = new ArrayList<Locale>();
    for (Locale locale : (((locales == null) || (locales.size() == 0))
            ? Collections.singletonList(I18NUtil.getLocale())
            : locales)) {
        expandedLocales.addAll(MLAnalysisMode.getLocales(mlAnalysisMode, locale, false));
    }
    for (Locale locale : (((expandedLocales == null) || (expandedLocales.size() == 0))
            ? Collections.singletonList(I18NUtil.getLocale())
            : expandedLocales)) {

        try {
            addTextRange(field, propertyDef, part1, part2, includeLower, includeUpper, analysisMode,
                    expandedFieldName, propertyDef, tokenisationMode, booleanQuery, locale);
        } catch (IOException e) {
            throw new ParseException(
                    "Failed to tokenise: <" + part1 + "> or <" + part2 + ">   for " + propertyDef.getName());
        }

    }
    return booleanQuery.build();
}

From source file:org.alfresco.solr.query.Solr4QueryParser.java

License:Open Source License

@SuppressWarnings("RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE")
protected String getToken(String field, String value, AnalysisMode analysisMode) throws ParseException {
    try (TokenStream source = getAnalyzer().tokenStream(field, new StringReader(value))) {
        String tokenised = null;/*from w  w w . j a  v a2  s.co m*/

        while (source.incrementToken()) {
            CharTermAttribute cta = source.getAttribute(CharTermAttribute.class);
            OffsetAttribute offsetAtt = source.getAttribute(OffsetAttribute.class);
            TypeAttribute typeAtt = null;
            if (source.hasAttribute(TypeAttribute.class)) {
                typeAtt = source.getAttribute(TypeAttribute.class);
            }
            PositionIncrementAttribute posIncAtt = null;
            if (source.hasAttribute(PositionIncrementAttribute.class)) {
                posIncAtt = source.getAttribute(PositionIncrementAttribute.class);
            }
            PackedTokenAttributeImpl token = new PackedTokenAttributeImpl();
            token.setEmpty().copyBuffer(cta.buffer(), 0, cta.length());
            token.setOffset(offsetAtt.startOffset(), offsetAtt.endOffset());
            if (typeAtt != null) {
                token.setType(typeAtt.type());
            }
            if (posIncAtt != null) {
                token.setPositionIncrement(posIncAtt.getPositionIncrement());
            }

            tokenised = token.toString();
        }
        return tokenised;
    } catch (IOException e) {
        throw new ParseException("IO" + e.getMessage());
    }

}

From source file:org.apache.blur.lucene.search.SuperParser.java

License:Apache License

public Query parse(final String queryStr) throws ParseException {
    final Map<String, Query> subQueries = new HashMap<String, Query>();
    final StringBuilder builder = new StringBuilder();
    match(queryStr, new Group() {
        int _subQueryIndex = 0;

        @Override//from   www .  j a v  a  2s  . c  o  m
        public void match(int start, int end) throws ParseException {
            if (_lastStart != start) {
                builder.append(queryStr.substring(_lastEnd, start));
            }
            String realQuery = queryStr.substring(start, end);
            LOG.debug("Realquery [{0}]", realQuery);
            String superQueryStr = getMatchText(realQuery);
            LOG.debug("Parseable sub query [{0}]", superQueryStr);
            String key = _prefixToSub + _subQueryIndex;
            QueryParser newParser = getNewParser();
            Query query = newParser.parse(superQueryStr);
            if (!isSameGroupName(query)) {
                throw new ParseException(
                        "Super query [" + superQueryStr + "] cannot reference more than one column family.");
            }
            if (_superSearch) {
                query = newSuperQuery(query);
            } else {
                query = wrapFilter(query);
            }
            subQueries.put(key, query);
            builder.append(_prefixToSub).append(':').append(_subQueryIndex);
            _subQueryIndex++;
            _lastStart = start;
            _lastEnd = end;
        }

        private String getMatchText(String match) {
            return match.substring(1, match.length() - 1);
        }
    });
    if (_lastEnd < queryStr.length()) {
        builder.append(queryStr.substring(_lastEnd));
    }
    Query query = super.parse(builder.toString());
    return fixNegatives(reprocess(replaceRealQueries(query, subQueries)));
}

From source file:org.apache.blur.lucene.search.SuperParser.java

License:Apache License

private static void match(String source, Group group) throws ParseException {
    int line = 1;
    int length = source.length();
    int start = -1;
    char p = 0;/*from ww w  .  j  ava2s  .  c  o  m*/
    int column = 1;
    for (int i = 0; i < length; i++) {
        char c = source.charAt(i);
        if (c == '<') {
            if (p != '\\') {
                if (start == -1) {
                    start = i;
                } else {
                    throw new ParseException("Cannot parse '" + source + "': Encountered \"<\" at line " + line
                            + ", column " + column + ".");
                }
            }
        } else if (c == '>') {
            if (p != '\\') {
                if (start != -1) {
                    group.match(start, i + 1);
                    start = -1;
                } else {
                    throw new ParseException("Cannot parse '" + source + "': Encountered \">\" at line " + line
                            + ", column " + column + ".");
                }
            }
        } else if (c == '\n') {
            line++;
            column = 0;
        }
        column++;
        p = c;
    }
}