Java Code Examples for org.apache.lucene.search.spans.SpanContainingQuery

The following examples show how to use org.apache.lucene.search.spans.SpanContainingQuery. These examples are extracted from open source projects. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source Project: lucene-solr   Source File: TestPayloadScoreQuery.java    License: Apache License 2.0 6 votes vote down vote up
@Test
public void testSpanContainingQuery() throws Exception {

  // twenty WITHIN ((one OR hundred) NEAR two)~2
  SpanContainingQuery q = new SpanContainingQuery(
      new SpanNearQuery(new SpanQuery[]{
          new SpanOrQuery(new SpanTermQuery(new Term("field", "one")), new SpanTermQuery(new Term("field", "hundred"))),
          new SpanTermQuery(new Term("field", "two"))
      }, 2, true),
      new SpanTermQuery(new Term("field", "twenty"))
  );

  checkQuery(q, new AveragePayloadFunction(), new int[] { 222, 122 }, new float[]{ 4.0f, 3.666666f });
  checkQuery(q, new MaxPayloadFunction(), new int[]{ 122, 222 }, new float[]{ 4.0f, 4.0f });
  checkQuery(q, new MinPayloadFunction(), new int[]{ 222, 122 }, new float[]{ 4.0f, 2.0f });

}
 
Example 2
Source Project: lucene-solr   Source File: TestSpanExtractors.java    License: Apache License 2.0 5 votes vote down vote up
public void testSpanContains() {
  Term t1 = new Term("field", "term1");
  Term t2 = new Term("field", "term22");
  Term t3 = new Term("field", "term333");
  SpanContainingQuery swq = new SpanContainingQuery(
      SpanNearQuery.newOrderedNearQuery("field")
          .addClause(new SpanTermQuery(t1))
          .addClause(new SpanTermQuery(t2))
          .build(),
      new SpanTermQuery(t3));

  assertEquals(Collections.singleton(t3), collectTerms(swq));
}
 
Example 3
Source Project: mtas   Source File: MtasSpanContainingQuery.java    License: Apache License 2.0 5 votes vote down vote up
/**
 * Instantiates a new mtas span containing query.
 *
 * @param q1 the q 1
 * @param q2 the q 2
 */
public MtasSpanContainingQuery(MtasSpanQuery q1, MtasSpanQuery q2) {
  super(q1 != null ? q1.getMinimumWidth() : null,
      q1 != null ? q1.getMaximumWidth() : null);
  if (q2 != null && q2.getMinimumWidth() != null
      && (this.getMinimumWidth() == null
          || this.getMinimumWidth() < q2.getMinimumWidth())) {
    this.setWidth(q2.getMinimumWidth(), this.getMaximumWidth());
  }
  bigQuery = q1;
  smallQuery = q2;
  if (bigQuery != null && bigQuery.getField() != null) {
    field = bigQuery.getField();
  } else if (smallQuery != null && smallQuery.getField() != null) {
    field = smallQuery.getField();
  } else {
    field = null;
  }
  if (field != null && bigQuery != null && smallQuery != null) {
    if (bigQuery.getField() != null && smallQuery.getField() != null) {
      baseQuery = new SpanContainingQuery(bigQuery, smallQuery);
    } else {
      baseQuery = null;
    }
  } else {
    baseQuery = null;
  }
}