Package com.flaptor.indextank.index.rti

Source Code of com.flaptor.indextank.index.rti.RealTimeIndexQueriesTest

/*
* Copyright (c) 2011 LinkedIn, Inc
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/


package com.flaptor.indextank.index.rti;


import static com.flaptor.util.TestInfo.TestType.UNIT;

import java.io.IOException;

import com.flaptor.indextank.IndexTankTestCase;
import com.flaptor.indextank.index.QueryMatcher;
import com.flaptor.indextank.index.scorer.MockScorer;
import com.flaptor.indextank.index.scorer.NoFacetingManager;
import com.flaptor.indextank.query.IndexEngineParser;
import com.flaptor.indextank.query.ParseException;
import com.flaptor.util.TestInfo;

public class RealTimeIndexQueriesTest extends IndexTankTestCase {

  private String id1 = "id1", id2 = "id2", id3 = "id3", id4 = "id4";
    private RealTimeIndex rti;
  private QueryMatcher session;

  @Override
  protected void setUp() throws Exception {
      super.setUp();
      rti = new RealTimeIndex(new MockScorer(), new IndexEngineParser("text"), 4, new NoFacetingManager());
      rti.add(id1, createDocument("hola que tal 1"));
      rti.add(id2, createDocument("hola que tal 2"));
      rti.add(id3, createDocument("hola que tal 3"));
      rti.add(id4, createDocument("hola que tal 4"));
      session = rti.getSearchSession();
  }
 
    @Override
  protected void tearDown() throws Exception {
      super.tearDown();
  }
   
  @TestInfo(testType=UNIT)
  public void testTerm() throws IOException, ParseException, InterruptedException {
    assertResultIds("term query failed", session.findMatches(query("hola"), 10, 0), id1, id2, id3, id4);
    assertResultIds("term query failed (2)", session.findMatches(query("halo"), 10, 0));
    assertResultIds("term query failed (3)", session.findMatches(query("3"), 10, 0), id3);
  }
 
  @TestInfo(testType=UNIT)
  public void testAnd() throws IOException, ParseException, InterruptedException {
    assertResultIds("and query failed", session.findMatches(query("hola AND tal"), 10, 0), id1, id2, id3, id4);
    assertResultIds("and query failed (2)", session.findMatches(query("hola AND nunca"), 10, 0));
    assertResultIds("and query failed (3)", session.findMatches(query("hola AND 2"), 10, 0), id2);
  }
 
  @TestInfo(testType=UNIT)
  public void testOr() throws IOException, ParseException, InterruptedException {
    assertResultIds("or query failed", session.findMatches(query("nada OR tal"), 10, 0), id1, id2, id3, id4);
    assertResultIds("or query failed (2)", session.findMatches(query("nada OR nunca"), 10, 0));
    assertResultIds("or query failed (3)", session.findMatches(query("nada OR 4"), 10, 0), id4);
  }
  @TestInfo(testType=UNIT)
  public void testPhrase() throws IOException, ParseException, InterruptedException {
    assertResultIds("phrase query failed", session.findMatches(query("\"hola que\""), 10, 0), id1, id2, id3, id4);
    assertResultIds("phrase query failed (2)", session.findMatches(query("\"que tal 3\""), 10, 0), id3);
    assertResultIds("phrase query failed (3)", session.findMatches(query("\"tal que 3\""), 10, 0));
  }
  @TestInfo(testType=UNIT)
  public void testDifference() throws IOException, ParseException, InterruptedException {
    assertResultIds("phrase query failed", session.findMatches(query("hola -que"), 10, 0));
    assertResultIds("phrase query failed (2)", session.findMatches(query("tal -3"), 10, 0), id1, id2, id4);
    assertResultIds("phrase query failed (3)", session.findMatches(query("tal -nada"), 10, 0), id1, id2, id3, id4);
  }
  @TestInfo(testType=UNIT)
  public void testComplex() throws IOException, ParseException, InterruptedException {
    assertResultIds("complex query failed", session.findMatches(query("\"hola que\" AND 3"), 10, 0), id3);
    assertResultIds("complex query failed (2)", session.findMatches(query("\"hola que\" AND (3 OR 2)"), 10, 0), id2, id3);
    assertResultIds("complex query failed (3)", session.findMatches(query("\"hola que tal\" -3"), 10, 0), id1, id2, id4);
    assertResultIds("complex query failed (4)", session.findMatches(query("(hola AND 3) OR (hola AND 4)"), 10, 0), id3, id4);
    assertResultIds("complex query failed (5)", session.findMatches(query("((hola AND 3) OR (hola AND 4)) AND 4"), 10, 0), id4);
    assertResultIds("complex query failed (6)", session.findMatches(query("((hola AND 3) OR (hola AND 4)) -4"), 10, 0), id3);
    assertResultIds("complex query failed (7)", session.findMatches(query("((hola AND 3) OR (hola AND 4)) AND (2 OR 3)"), 10, 0), id3);
  }
 
}
TOP

Related Classes of com.flaptor.indextank.index.rti.RealTimeIndexQueriesTest

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.