Examples of SpanQuery


Examples of org.apache.lucene.search.spans.SpanQuery

    Set<Term> nonWeightedTerms = new HashSet<Term>();
    final boolean mustRewriteQuery = mustRewriteQuery(spanQuery);
    if (mustRewriteQuery) {
      for (final String field : fieldNames) {
        final SpanQuery rewrittenQuery = (SpanQuery) spanQuery.rewrite(getReaderForField(field));
        queries.put(field, rewrittenQuery);
        rewrittenQuery.extractTerms(nonWeightedTerms);
      }
    } else {
      spanQuery.extractTerms(nonWeightedTerms);
    }
View Full Code Here

Examples of org.apache.lucene.search.spans.SpanQuery

      Object n1 = create("node");
      setString(n1, "text", "Filter: " + fq.getFilter().toString());
      add(n, n1);
      _explainStructure(n, fq.getQuery());
    } else if (q instanceof SpanQuery) {
      SpanQuery sq = (SpanQuery)q;
      Class sqlass = sq.getClass();
      setString(n, "text", getString(n, "text") + ", field=" + sq.getField());
      if (sqlass == SpanOrQuery.class) {
        SpanOrQuery soq = (SpanOrQuery)sq;
        setString(n, "text", getString(n, "text") + ", " + soq.getClauses().length + " clauses");
        for (SpanQuery sq1 : soq.getClauses()) {
          _explainStructure(n, sq1);
        }
      } else if (sqlass == SpanFirstQuery.class) {
        SpanFirstQuery sfq = (SpanFirstQuery)sq;
        setString(n, "text", getString(n, "text") + ", end=" + sfq.getEnd() + ", match:");
        _explainStructure(n, sfq.getMatch());
      } else if (q instanceof SpanNearQuery) { // catch also known subclasses
        SpanNearQuery snq = (SpanNearQuery)sq;
        setString(n, "text", getString(n, "text") + ", slop=" + snq.getSlop());
        if (snq instanceof PayloadNearQuery) {
          try {
            java.lang.reflect.Field function = PayloadNearQuery.class.getDeclaredField("function");
            function.setAccessible(true);
            Object func = function.get(snq);
            setString(n, "text", getString(n, "text") + ", func=" + func.getClass().getSimpleName());
          } catch (Exception e) {
            e.printStackTrace();
          }
        }
        for (SpanQuery sq1 : snq.getClauses()) {
          _explainStructure(n, sq1);
        }
      } else if (sqlass == SpanNotQuery.class) {
        SpanNotQuery snq = (SpanNotQuery)sq;
        Object n1 = create("node");
        add(n, n1);
        setString(n1, "text", "Include:");
        _explainStructure(n1, snq.getInclude());
        n1 = create("node");
        add(n, n1);
        setString(n1, "text", "Exclude:");
        _explainStructure(n1, snq.getExclude());
      } else if (q instanceof SpanTermQuery) {
        SpanTermQuery stq = (SpanTermQuery)sq;
        setString(n, "text", getString(n, "text") + ", term=" + stq.getTerm());       
        if (stq instanceof PayloadTermQuery) {
          try {
            java.lang.reflect.Field function = PayloadTermQuery.class.getDeclaredField("function");
            function.setAccessible(true);
            Object func = function.get(stq);
            setString(n, "text", getString(n, "text") + ", func=" + func.getClass().getSimpleName());
          } catch (Exception e) {
            e.printStackTrace();
          }
        }
      } else {
        String defField = getDefaultField(find("srchOptTabs"));
        setString(n, "text", "class=" + q.getClass().getName() + ", " + getString(n, "text") + ", toString=" + q.toString(defField));
        HashSet<Term> terms = new HashSet<Term>();
        sq.extractTerms(terms);
        Object n1 = null;
        if (terms != null) {
          n1 = create("node");
          setString(n1, "text", "Matched terms (" + terms.size() + "):");
          add(n, n1);
View Full Code Here

Examples of org.apache.lucene.search.spans.SpanQuery

    SpanQuery[] clauses = parsedQuery.getClauses();
    //we need to recurse through the clauses until we get to SpanTermQuery
    Term lastTerm = null;
    Float lastWeight = null;
    for (int i = 0; i < clauses.length; i++) {
      SpanQuery clause = clauses[i];
      if (clause instanceof SpanTermQuery) {
        Term term = ((SpanTermQuery) clause).getTerm();
        Float weight = calculateWeight(term, reader);
        termWeights.put(term.text(), weight);
        if (lastTerm != null) {//calculate the bi-grams
          //use the smaller of the two weights
          if (lastWeight.floatValue() < weight.floatValue()) {
            bigramWeights.put(lastTerm + "," + term.text(), new Float(lastWeight.floatValue() * 0.25));
          } else {
            bigramWeights.put(lastTerm + "," + term.text(), new Float(weight.floatValue() * 0.25));
          }
        }
        //last
        lastTerm = term;
        lastWeight = weight;
      } else {
        //TODO: handle the other types
        throw new SolrException(SolrException.ErrorCode.SERVER_ERROR, "Unhandled query type: " + clause.getClass().getName());
      }
    }


  }
View Full Code Here

Examples of org.apache.lucene.search.spans.SpanQuery

      }

      SpanQuery[] includeClauses = (SpanQuery[]) positiveClauses
          .toArray(new SpanQuery[positiveClauses.size()]);

      SpanQuery include = null;
      if (includeClauses.length == 1) {
        include = includeClauses[0]; // only one positive clause
      } else {
        // need to increase slop factor based on gaps introduced by
        // negatives
View Full Code Here

Examples of org.apache.lucene.search.spans.SpanQuery

  public Object clone() {
    int sz = clauses.size();
    SpanQuery[] newClauses = new SpanQuery[sz];

    for (int i = 0; i < sz; i++) {
      SpanQuery clause = (SpanQuery) clauses.get(i);
      newClauses[i] = (SpanQuery) clause.clone();
    }
    PayloadNearQuery boostingNearQuery = new PayloadNearQuery(newClauses, slop,
        inOrder);
    boostingNearQuery.setBoost(getBoost());
    return boostingNearQuery;
View Full Code Here

Examples of org.apache.lucene.search.spans.SpanQuery

  public String toString(String field) {
    StringBuffer buffer = new StringBuffer();
    buffer.append("payloadNear([");
    Iterator i = clauses.iterator();
    while (i.hasNext()) {
      SpanQuery clause = (SpanQuery) i.next();
      buffer.append(clause.toString(field));
      if (i.hasNext()) {
        buffer.append(", ");
      }
    }
    buffer.append("], ");
View Full Code Here

Examples of org.apache.lucene.search.spans.SpanQuery

  }
 
  private PayloadNearQuery newPhraseQuery (String fieldName, String phrase, boolean inOrder) {
    int n;
    String[] words = phrase.split("[\\s]+");
    SpanQuery clauses[] = new SpanQuery[words.length];
    for (int i=0;i<clauses.length;i++) {
      clauses[i] = new PayloadTermQuery(new Term(fieldName, words[i]), new AveragePayloadFunction())
    }
    return new PayloadNearQuery(clauses, 0, inOrder);
  }
View Full Code Here

Examples of org.apache.lucene.search.spans.SpanQuery

    PayloadNearQuery query;
    TopDocs hits;

    // combine ordered and unordered spans with some nesting to make sure all payloads are counted

    SpanQuery q1 = newPhraseQuery("field", "nine hundred", true);
    SpanQuery q2 = newPhraseQuery("field", "ninety nine", true);
    SpanQuery q3 = newPhraseQuery("field", "nine ninety", false);
    SpanQuery q4 = newPhraseQuery("field", "hundred nine", false);
    SpanQuery[]clauses = new SpanQuery[] {new PayloadNearQuery(new SpanQuery[] {q1,q2}, 0, true), new PayloadNearQuery(new SpanQuery[] {q3,q4}, 0, false)};
    query = new PayloadNearQuery(clauses, 0, false);
    hits = searcher.search(query, null, 100);
    assertTrue("hits is null and it shouldn't be", hits != null);
    // should be only 1 hit - doc 999
View Full Code Here

Examples of org.apache.lucene.search.spans.SpanQuery

  public void testGetBestFragmentsQueryScorer() throws Exception {
    TestHighlightRunner helper = new TestHighlightRunner() {

      public void run() throws Exception {
        numHighlights = 0;
        SpanQuery clauses[] = { new SpanTermQuery(new Term("contents", "john")),
            new SpanTermQuery(new Term("contents", "kennedy")), };

        SpanNearQuery snq = new SpanNearQuery(clauses, 1, true);
        doSearching(snq);
        doStandardHighlights(analyzer, hits, query, HighlighterTest.this);
View Full Code Here

Examples of org.apache.lucene.search.spans.SpanQuery

    TestHighlightRunner helper = new TestHighlightRunner() {

      public void run() throws Exception {
        numHighlights = 0;
        TermRangeFilter rf = new TermRangeFilter("contents", "john", "john", true, true);
        SpanQuery clauses[] = { new SpanTermQuery(new Term("contents", "john")),
            new SpanTermQuery(new Term("contents", "kennedy")), };
        SpanNearQuery snq = new SpanNearQuery(clauses, 1, true);
        FilteredQuery fq = new FilteredQuery(snq, rf);

        doSearching(fq);
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.