List of usage examples for org.apache.lucene.queryparser.classic ParseException ParseException
public ParseException(String message)
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; } }