org.apache.lucene.search.Query类的使用及代码示例

x33g5p2x  于2022-01-28 转载在 其他  
字(8.8k)|赞(0)|评价(0)|浏览(301)

本文整理了Java中org.apache.lucene.search.Query类的一些代码示例,展示了Query类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Query类的具体详情如下:
包路径:org.apache.lucene.search.Query
类名称:Query

Query介绍

[英]The abstract base class for queries.

Instantiable subclasses are:

  • TermQuery
  • BooleanQuery
  • WildcardQuery
  • PhraseQuery
  • PrefixQuery
  • MultiPhraseQuery
  • FuzzyQuery
  • RegexpQuery
  • TermRangeQuery
  • NumericRangeQuery
  • ConstantScoreQuery
  • DisjunctionMaxQuery
  • MatchAllDocsQuery

See also the family of org.apache.lucene.search.spansand additional queries available in the Queries module
[中]查询的抽象基类。
可实例化的子类包括:
*术语查询
*布尔查询
*通配符查询
*短语查询
*前缀查询
*多重措辞
*模糊查询
*RegexpQuery
*TermRangeQuery
*数字范围查询
*康斯坦索查询
*析取MaxQuery
*相配的
另见org家族。阿帕奇。卢森。搜索span和Queries module中提供的其他查询

代码示例

代码示例来源:origin: oracle/opengrok

  1. /**
  2. * Gets the instance from {@code search(...)} if it was called.
  3. * @return defined instance or {@code null}
  4. */
  5. public String getQuery() {
  6. return query != null ? query.toString() : null;
  7. }

代码示例来源:origin: org.apache.lucene/lucene-core

  1. /** Expert: called to re-write queries into primitive queries.
  2. * @throws BooleanQuery.TooManyClauses If a query would exceed
  3. * {@link BooleanQuery#getMaxClauseCount()} clauses.
  4. */
  5. public Query rewrite(Query original) throws IOException {
  6. Query query = original;
  7. for (Query rewrittenQuery = query.rewrite(reader); rewrittenQuery != query;
  8. rewrittenQuery = query.rewrite(reader)) {
  9. query = rewrittenQuery;
  10. }
  11. return query;
  12. }

代码示例来源:origin: org.apache.lucene/lucene-core

  1. @Override
  2. public DoubleValuesSource rewrite(IndexSearcher searcher) throws IOException {
  3. return new WeightDoubleValuesSource(searcher.rewrite(query).createWeight(searcher, true, 1f));
  4. }

代码示例来源:origin: org.infinispan/infinispan-query

  1. @Test
  2. public void testBeAbleToProjectUnqualifiedField() {
  3. LuceneQueryParsingResult<Class<?>> result = parseAndTransform("SELECT name, text FROM org.infinispan.query.dsl.embedded.impl.model.Employee e JOIN e.contactDetails d");
  4. assertThat(result.getQuery().toString()).isEqualTo("*:*");
  5. assertThat(result.getProjections()).containsOnly("name", "text");
  6. }

代码示例来源:origin: org.infinispan/infinispan-query

  1. @Test
  2. public void testProjectionQuery() {
  3. LuceneQueryParsingResult<Class<?>> parsingResult = parseAndTransform("select e.id, e.name from org.infinispan.query.dsl.embedded.impl.model.Employee e");
  4. assertThat(parsingResult.getQuery().toString()).isEqualTo("*:*");
  5. assertThat(parsingResult.getProjections()).isEqualTo(new String[]{"id", "name"});
  6. }

代码示例来源:origin: rnewson/couchdb-lucene

  1. queryRow.put("q", q.toString());
  2. if (getBooleanParameter(req, "debug")) {
  3. queryRow.put("plan", QueryPlan.toPlan(q));
  4. final Query rewritten_q = q.rewrite(searcher
  5. .getIndexReader());
  6. queryRow.put("rewritten_q", rewritten_q.toString());
  7. final Weight weight = rewritten_q.createWeight(searcher, false);
  8. weight.extractTerms(terms);
  9. for (final Object term : terms) {
  10. final int freq = searcher.getIndexReader().docFreq((Term) term);
  11. freqs.put(term.toString(), freq);
  12. td = searcher.search(q, skip + limit);
  13. } else {
  14. td = searcher.search(q, skip + limit, sort);

代码示例来源:origin: hibernate/hibernate-search

  1. private Set<Term> extractTerms(Query query, Class<?> indexedType) throws IOException {
  2. IndexReader reader = null;
  3. try {
  4. Set<Term> terms = new HashSet<Term>( 100 );
  5. reader = sfHolder.getSearchFactory().getIndexReaderAccessor().open( indexedType );
  6. query.createWeight( new IndexSearcher( reader ), false ).extractTerms( terms );
  7. return terms;
  8. }
  9. finally {
  10. if ( reader != null ) {
  11. reader.close();
  12. }
  13. }
  14. }

代码示例来源:origin: hibernate/hibernate-search

  1. @Override
  2. public void close() {
  3. final IndexReader indexReader = searcher.getIndexReader();
  4. try {
  5. MultiReaderFactory.closeReader( indexReader );
  6. }
  7. catch (SearchException e) {
  8. log.unableToCloseSearcherDuringQuery( userQuery.toString(), e );
  9. }
  10. }

代码示例来源:origin: larsga/Duke

  1. termQuery.setBoost(boost);
  2. parent.add(termQuery, required ? Occur.MUST : Occur.SHOULD);

代码示例来源:origin: hibernate/hibernate-search

  1. private Query rewrittenQuery() throws IOException {
  2. if ( rewrittenQuery == null ) {
  3. //Apply faceting filters:
  4. final Query effectiveQuery = facetingFilters.filterOrPassthrough( userQuery );
  5. rewrittenQuery = effectiveQuery.rewrite( searcher.getIndexReader() );
  6. }
  7. return rewrittenQuery;
  8. }
  9. }

代码示例来源:origin: org.apache.lucene/lucene-core

  1. @Override
  2. public Explanation explain(LeafReaderContext context, int doc) throws IOException {
  3. final int minShouldMatch = query.getMinimumNumberShouldMatch();
  4. List<Explanation> subs = new ArrayList<>();
  5. float sum = 0.0f;
  6. int matchCount = 0;
  7. int shouldMatchCount = 0;
  8. Iterator<BooleanClause> cIter = query.iterator();
  9. for (Iterator<Weight> wIter = weights.iterator(); wIter.hasNext();) {
  10. Weight w = wIter.next();
  11. BooleanClause c = cIter.next();
  12. Explanation e = w.explain(context, doc);
  13. if (e.isMatch()) {
  14. if (c.isScoring()) {
  15. Explanation.match(0f, Occur.FILTER + " clause"), e));
  16. } else if (c.isProhibited()) {
  17. subs.add(Explanation.noMatch("match on prohibited clause (" + c.getQuery().toString() + ")", e));
  18. fail = true;
  19. subs.add(Explanation.noMatch("no match on required clause (" + c.getQuery().toString() + ")", e));
  20. fail = true;

代码示例来源:origin: org.elasticsearch/elasticsearch

  1. final Weight nestedWeight = filter.createWeight(sc.searcher(), false, 1f);
  2. Scorer scorer = nestedWeight.scorer(context);
  3. if (scorer == null) {
  4. continue;

代码示例来源:origin: org.apache.lucene/lucene-core

  1. public String toString(String field) {
  2. StringBuilder buffer = new StringBuilder();
  3. boolean needParens = getMinimumNumberShouldMatch() > 0;
  4. if (needParens) {
  5. buffer.append("(");
  6. if (subQuery instanceof BooleanQuery) { // wrap sub-bools in parens
  7. buffer.append("(");
  8. buffer.append(subQuery.toString(field));
  9. buffer.append(")");
  10. } else {
  11. buffer.append(subQuery.toString(field));
  12. if (getMinimumNumberShouldMatch()>0) {
  13. buffer.append('~');
  14. buffer.append(getMinimumNumberShouldMatch());

代码示例来源:origin: org.elasticsearch/elasticsearch

  1. @Override
  2. public Explanation explain(LeafReaderContext context, int doc) throws IOException {
  3. Explanation expl = subQueryWeight.explain(context, doc);
  4. if (!expl.isMatch()) {
  5. return expl;
  6. if (filterWeights[i] != null) {
  7. final Bits docSet = Lucene.asSequentialAccessBits(
  8. context.reader().maxDoc(), filterWeights[i].scorerSupplier(context));
  9. if (docSet.get(doc) == false) {
  10. continue;
  11. Query filterQuery = ((FilterScoreFunction) function).filter;
  12. Explanation filterExplanation = Explanation.match(sc, "function score, product of:",
  13. Explanation.match(1.0f, "match filter: " + filterQuery.toString()), functionExplanation);
  14. functionsExplanations.add(filterExplanation);
  15. } else {

代码示例来源:origin: org.apache.lucene/lucene-core

  1. final int threshold = Math.min(BOOLEAN_REWRITE_TERM_COUNT_THRESHOLD, BooleanQuery.getMaxClauseCount());
  2. assert termData.size() > threshold : "Query should have been rewritten";
  3. List<TermAndState> matchingTerms = new ArrayList<>(threshold);
  4. BooleanQuery.Builder bq = new BooleanQuery.Builder();
  5. for (TermAndState t : matchingTerms) {
  6. final TermContext termContext = new TermContext(searcher.getTopReaderContext());
  7. termContext.register(t.state, context.ord, t.docFreq, t.totalTermFreq);
  8. bq.add(new TermQuery(new Term(t.field, t.term), termContext), Occur.SHOULD);
  9. final Weight weight = searcher.rewrite(q).createWeight(searcher, needsScores, score());
  10. return new WeightOrDocIdSet(weight);
  11. } else {

代码示例来源:origin: harbby/presto-connectors

  1. private String getRewrittenQuery(IndexSearcher searcher, Query query) throws IOException {
  2. Query queryRewrite = searcher.rewrite(query);
  3. if (queryRewrite instanceof MatchNoDocsQuery) {
  4. return query.toString();
  5. } else {
  6. return queryRewrite.toString();
  7. }
  8. }
  9. }

代码示例来源:origin: org.apache.lucene/com.springsource.org.apache.lucene

  1. protected Weight createWeight(Searcher searcher) throws IOException {
  2. if (terms.size() == 1) { // optimize one-term case
  3. Term term = (Term)terms.get(0);
  4. Query termQuery = new TermQuery(term);
  5. termQuery.setBoost(getBoost());
  6. return termQuery.createWeight(searcher);
  7. }
  8. return new PhraseWeight(searcher);
  9. }

代码示例来源:origin: org.apache.lucene/lucene-core

  1. @Override
  2. public Query rewrite(IndexReader reader) throws IOException {
  3. final int threshold = Math.min(BOOLEAN_REWRITE_TERM_COUNT_THRESHOLD, BooleanQuery.getMaxClauseCount());
  4. if (termData.size() <= threshold) {
  5. BooleanQuery.Builder bq = new BooleanQuery.Builder();
  6. TermIterator iterator = termData.iterator();
  7. for (BytesRef term = iterator.next(); term != null; term = iterator.next()) {
  8. bq.add(new TermQuery(new Term(iterator.field(), BytesRef.deepCopyOf(term))), Occur.SHOULD);
  9. }
  10. return new ConstantScoreQuery(bq.build());
  11. }
  12. return super.rewrite(reader);
  13. }

代码示例来源:origin: org.apache.lucene/com.springsource.org.apache.lucene

  1. /** Expert: Constructs and initializes a Weight for a top-level query. */
  2. public Weight weight(Searcher searcher)
  3. throws IOException {
  4. Query query = searcher.rewrite(this);
  5. Weight weight = query.createWeight(searcher);
  6. float sum = weight.sumOfSquaredWeights();
  7. float norm = getSimilarity(searcher).queryNorm(sum);
  8. weight.normalize(norm);
  9. return weight;
  10. }

代码示例来源:origin: org.infinispan/infinispan-embedded-query

  1. @Override
  2. public Query rewrite(IndexReader r) throws IOException {
  3. if (getBoost() != 1f) {
  4. return super.rewrite(r);
  5. }
  6. BooleanQuery rewritten = getBooleanQuery();
  7. if (rewritten.clauses().isEmpty()) {
  8. return new MatchAllDocsQuery();
  9. }
  10. return rewritten;
  11. }

相关文章