Example usage for org.apache.lucene.queryparser.flexible.standard StandardQueryParser StandardQueryParser

List of usage examples for org.apache.lucene.queryparser.flexible.standard StandardQueryParser StandardQueryParser

Introduction

In this page you can find the example usage for org.apache.lucene.queryparser.flexible.standard StandardQueryParser StandardQueryParser.

Prototype

public StandardQueryParser(Analyzer analyzer) 

Source Link

Document

Constructs a StandardQueryParser object and sets an Analyzer to it.

Usage

From source file:com.netcrest.pado.index.provider.lucene.TopNLuceneSearch.java

License:Open Source License

protected Set<Object> getIdentityKeySet(String queryString, Directory dir) {
    Set<Object> identityKeySet = new HashSet<Object>();
    DirectoryReader reader;//from   ww  w  .j a v  a  2  s .  c o m
    try {
        reader = DirectoryReader.open(dir);
    } catch (CorruptIndexException e1) {
        e1.printStackTrace();
        throw new RuntimeException(e1);
    } catch (IOException e1) {
        e1.printStackTrace();
        throw new RuntimeException(e1);
    }

    Query query;
    try {
        StandardQueryParser parser = new StandardQueryParser(new StandardAnalyzer(LUCENE_VERSION));
        query = parser.parse(queryString.replaceAll("\\-", "\\\\-"), "__doc");
    } catch (Exception ex) {
        // Lucene bug. Unable to serialize exception. Log the message and
        // throw a new exception with the string message.
        ex.printStackTrace();
        throw new PadoException(ex.getMessage());
    }
    IndexSearcher searcher = new IndexSearcher(reader);
    TopDocs results;
    try {
        results = searcher.search(query, null, Integer.MAX_VALUE);
        for (ScoreDoc hit : results.scoreDocs) {
            Document doc;
            try {
                doc = searcher.doc(hit.doc);
            } catch (CorruptIndexException e) {
                e.printStackTrace();
                throw new RuntimeException(e);
            } catch (IOException e) {
                e.printStackTrace();
                throw new RuntimeException(e);
            }
            // IndexableField field = doc.getField("IdentityKey");
            // if (field == null) {
            // continue;
            // }
            // Object identityKey = field.stringValue();
            // if (identityKey == null) {
            // identityKey = field.numericValue();
            // }
            // if (identityKey == null) {
            // BytesRef br = field.binaryValue();
            // if (br != null) {
            // byte[] blob = br.bytes;
            // try {
            // identityKey = BlobHelper.deserializeBlob(blob);
            // identityKeySet.add(identityKey);
            // } catch (Exception ex) {
            // Logger.warning("Identity key deserialization error", ex);
            // }
            // } else {
            // identityKey = field.toString();
            // }
            // }
            LuceneField luceneField = new LuceneField();
            ITemporalKey temporalKey = luceneField.getTemporalKey(doc);

            if (temporalKey != null) {
                float docScore = hit.score;
                identityKeySet.add(temporalKey.getIdentityKey());
            }
        }
    } catch (IOException e1) {
        e1.printStackTrace();
        throw new RuntimeException(e1);
    }
    return identityKeySet;
}

From source file:com.tuplejump.stargate.lucene.query.LuceneCondition.java

License:Apache License

/**
 * {@inheritDoc}/*  w  w w .j  a  va  2  s  .  c  om*/
 */
@Override
public Query query(Options schema) {
    if (query == null) {
        throw new IllegalArgumentException("Query statement required");
    }
    try {
        StandardQueryParser parser = new StandardQueryParser(schema.analyzer);
        parser.setNumericConfigMap(schema.numericFieldOptions);
        parser.setAllowLeadingWildcard(true);
        Query luceneQuery = parser.parse(query, getDefaultField(schema));
        luceneQuery.setBoost(boost);
        logger.debug("Lucene query is {}", luceneQuery);
        return luceneQuery;
    } catch (Exception e) {
        throw new RuntimeException("Error while parsing lucene syntax query", e);
    }
}

From source file:de.walware.statet.r.internal.core.rhelp.index.SearchQuery.java

License:Open Source License

static Query createMainQuery(final String fields[], final String queryText) throws QueryNodeException {
    final StandardQueryParser p = new StandardQueryParser(QUERY_ANALYZER);
    p.setDefaultOperator(Operator.AND);//from  w ww . jav  a 2s . c o  m
    p.setAllowLeadingWildcard(true);
    p.setMultiFields(fields);
    return p.parse(queryText, null);
}

From source file:io.vertigo.dynamo.plugins.collections.lucene.RamLuceneQueryFactory.java

License:Apache License

private static Query createFilteredQuery(final Analyzer queryAnalyser, final Query keywordsQuery,
        final List<ListFilter> filters) {
    final Builder queryBuilder = new BooleanQuery.Builder().add(keywordsQuery, BooleanClause.Occur.MUST);

    final StandardQueryParser queryParser = new StandardQueryParser(queryAnalyser);
    for (final ListFilter filter : filters) {
        try {//from   w  ww .j  ava  2  s  . co m
            queryBuilder.add(queryParser.parse(filter.getFilterValue(), null),
                    isExclusion(filter) ? BooleanClause.Occur.MUST_NOT : BooleanClause.Occur.MUST);
        } catch (final QueryNodeException e) {
            throw WrappedException.wrap(e, "Erreur lors de la cration du filtrage de la requete");
        }
    }
    return queryBuilder.build();
}

From source file:org.apache.geode.cache.lucene.internal.StringQueryProvider.java

License:Apache License

@Override
public synchronized Query getQuery(LuceneIndex index) throws LuceneQueryException {
    if (luceneQuery == null) {
        String[] fields = index.getFieldNames();
        LuceneIndexImpl indexImpl = (LuceneIndexImpl) index;
        StandardQueryParser parser = new StandardQueryParser(indexImpl.getAnalyzer());
        try {/* w w w .j a  va 2s .  com*/
            luceneQuery = parser.parse(query, defaultField);
            if (logger.isDebugEnabled()) {
                logger.debug("User query " + query + " is parsed to be: " + luceneQuery);
            }
        } catch (QueryNodeException e) {
            logger.debug("Query node exception:" + query, e);
            throw new LuceneQueryException("Malformed lucene query: " + query, e);
        }
    }
    return luceneQuery;
}

From source file:org.apache.jackrabbit.oak.plugins.index.lucene.LucenePropertyIndex.java

License:Apache License

static Query tokenToQuery(String text, String fieldName, Analyzer analyzer) {
    if (analyzer == null) {
        return null;
    }/*from  w  w  w.ja v  a 2  s . co m*/
    StandardQueryParser parserHelper = new StandardQueryParser(analyzer);
    parserHelper.setAllowLeadingWildcard(true);
    parserHelper.setDefaultOperator(StandardQueryConfigHandler.Operator.AND);

    text = rewriteQueryText(text);

    try {
        return parserHelper.parse(text, fieldName);
    } catch (QueryNodeException e) {
        throw new RuntimeException(e);
    }
}

From source file:org.efaps.admin.index.Searcher.java

License:Apache License

/**
 * Search./*from   w ww . j  ava2s.  c om*/
 *
 * @param _search the search
 * @return the search result
 * @throws EFapsException on error
 */
protected SearchResult executeSearch(final ISearch _search) throws EFapsException {
    final SearchResult ret = new SearchResult();
    try {
        LOG.debug("Starting search with: {}", _search.getQuery());
        final StandardQueryParser queryParser = new StandardQueryParser(Index.getAnalyzer());
        queryParser.setAllowLeadingWildcard(true);
        if (EFapsSystemConfiguration.get().containsAttributeValue(KernelSettings.INDEXDEFAULTOP)) {
            queryParser.setDefaultOperator(EnumUtils.getEnum(StandardQueryConfigHandler.Operator.class,
                    EFapsSystemConfiguration.get().getAttributeValue(KernelSettings.INDEXDEFAULTOP)));
        } else {
            queryParser.setDefaultOperator(StandardQueryConfigHandler.Operator.AND);
        }
        final Query query = queryParser.parse(_search.getQuery(), "ALL");

        final IndexReader reader = DirectoryReader.open(Index.getDirectory());
        Sort sort = _search.getSort();
        if (sort == null) {
            sort = new Sort(new SortField(Key.CREATED.name(), SortField.Type.LONG, true));
        }

        final FacetsConfig facetConfig = Index.getFacetsConfig();
        final DirectoryTaxonomyReader taxoReader = new DirectoryTaxonomyReader(Index.getTaxonomyDirectory());

        final IndexSearcher searcher = new IndexSearcher(reader);
        final FacetsCollector fc = new FacetsCollector();

        final TopFieldDocs topFieldDocs = FacetsCollector.search(searcher, query, _search.getNumHits(), sort,
                fc);

        if (_search.getConfigs().contains(SearchConfig.ACTIVATE_DIMENSION)) {
            final Facets facets = new FastTaxonomyFacetCounts(taxoReader, facetConfig, fc);

            for (final FacetResult result : facets.getAllDims(1000)) {
                LOG.debug("FacetResult {}.", result);
                final DimConfig dimConfig = facetConfig.getDimConfig(result.dim);
                final Dimension retDim = new Dimension().setKey(result.dim);
                ret.getDimensions().add(retDim);
                for (final LabelAndValue labelValue : result.labelValues) {
                    final DimValue dimValue = new DimValue().setLabel(labelValue.label)
                            .setValue(labelValue.value.intValue());
                    dimValue.setPath(new String[] { retDim.getKey() });
                    retDim.getValues().add(dimValue);
                    if (dimConfig.hierarchical) {
                        addSubDimension(facets, dimValue, result.dim, labelValue.label);
                    }
                }
            }
        }
        ret.setHitCount(topFieldDocs.totalHits);
        if (ret.getHitCount() > 0) {
            final ScoreDoc[] hits = topFieldDocs.scoreDocs;

            LOG.debug("Found {} hits.", hits.length);
            for (int i = 0; i < hits.length; ++i) {
                final Document doc = searcher.doc(hits[i].doc);
                final String oid = doc.get(Key.OID.name());
                final String text = doc.get(Key.MSGPHRASE.name());
                LOG.debug("{}. {}\t {}", i + 1, oid, text);
                final Instance instance = Instance.get(oid);
                final List<Instance> list;
                if (this.typeMapping.containsKey(instance.getType())) {
                    list = this.typeMapping.get(instance.getType());
                } else {
                    list = new ArrayList<Instance>();
                    this.typeMapping.put(instance.getType(), list);
                }
                list.add(instance);
                final Element element = new Element().setOid(oid).setText(text);
                for (final Entry<String, Collection<String>> entry : _search.getResultFields().entrySet()) {
                    for (final String name : entry.getValue()) {
                        final String value = doc.get(name);
                        if (value != null) {
                            element.addField(name, value);
                        }
                    }
                }
                this.elements.put(instance, element);
            }
        }
        reader.close();
        checkAccess();
        ret.getElements().addAll(this.elements.values());
    } catch (final IOException | QueryNodeException e) {
        LOG.error("Catched Exception", e);
    }
    return ret;
}

From source file:org.gridkit.coherence.search.lucene.rest.StandardRestQueryParser.java

License:Apache License

public StandardRestQueryParser() {
    parser = new StandardQueryParser(new StandardAnalyzer(Version.LUCENE_42));
}

From source file:org.gridkit.coherence.search.lucene.xml.JAXBSchemaTest.java

License:Apache License

public Query parseStd(String query) {
    try {/*from   w  w w  .java 2s .  c  o  m*/
        StandardQueryParser parser = new StandardQueryParser(new StandardAnalyzer(Version.LUCENE_42));
        return parser.parse(query, "text");
    } catch (QueryNodeException e) {
        throw new RuntimeException(e);
    }
}

From source file:org.xbib.elasticsearch.test.SKOSLabelFilterTest.java

License:Apache License

@Test
public void queryParserSearch() throws IOException, QueryNodeException {

    Document doc = new Document();
    doc.add(new Field("content", "The quick brown fox jumps over the lazy dog", TextField.TYPE_STORED));

    writer.addDocument(doc);//  w ww . ja v  a 2 s  .co m

    searcher = new IndexSearcher(DirectoryReader.open(writer, false));

    Query query = new StandardQueryParser(skosAnalyzer).parse("\"fox jumps\"", "content");

    Assert.assertEquals(1, TestUtil.hitCount(searcher, query));

    Assert.assertEquals("content:\"fox (jumps hops leaps)\"", query.toString());
    Assert.assertEquals("org.apache.lucene.search.MultiPhraseQuery", query.getClass().getName());

    query = new StandardQueryParser(new StandardAnalyzer(SKOSAnalysisPlugin.getLuceneVersion()))
            .parse("\"fox jumps\"", "content");
    Assert.assertEquals(1, TestUtil.hitCount(searcher, query));

    Assert.assertEquals("content:\"fox jumps\"", query.toString());
    Assert.assertEquals("org.apache.lucene.search.PhraseQuery", query.getClass().getName());

}