Package cleo.search

Examples of cleo.search.SimpleElement


      new VirtualArrayStoreElement<SimpleElement>(sourceB, scnFactory, elementStore, waterMarks);
   
    ArrayStoreElement<SimpleElement> storeC =
      new VirtualArrayStoreElement<SimpleElement>(sourceC, scnFactory, elementStore, waterMarks);
   
    SimpleElement element;
    long scn0 = System.currentTimeMillis();
    long scnA = scn0 + 100;
    long scnB = scn0 + 200;
    long scnC = scn0 + 300;
   
    for(long scn = scn0; scn <= scnA; scn++) {
      int elementId = inRangeId();
      element = new SimpleElement(elementId);
      element.setTimestamp(System.currentTimeMillis());
      element.setTerms(new String[] {"simple", "element", "A"});
      element.setScore(rand.nextFloat());
     
      storeA.setElement(elementId, element, scn);
    }
    assertEquals(scnA, storeA.getHWMark());
    assertTrue(storeA.getLWMark() <= storeA.getHWMark());
   
    for(long scn = scn0; scn <= scnB; scn++) {
      int elementId = inRangeId();
      element = new SimpleElement(elementId);
      element.setTimestamp(System.currentTimeMillis());
      element.setTerms(new String[] {"simple", "element", "B"});
      element.setScore(rand.nextFloat());
     
      storeB.setElement(elementId, element, scn);
    }
    assertEquals(scnB, storeB.getHWMark());
    assertTrue(storeB.getLWMark() <= storeB.getHWMark());
   
    for(long scn = scn0; scn <= scnC; scn++) {
      int elementId = inRangeId();
      element = new SimpleElement(elementId);
      element.setTimestamp(System.currentTimeMillis());
      element.setTerms(new String[] {"simple", "element", "C"});
      element.setScore(rand.nextFloat());
     
      storeC.setElement(elementId, element, scn);
    }
    assertEquals(scnC, storeC.getHWMark());
    assertTrue(storeC.getLWMark() <= storeC.getHWMark());
View Full Code Here


    int elemId = getElementStoreIndexStart() + rand.nextInt(getElementStoreCapacity());
   
    Connection conn = new SimpleConnection(uid, elemId, true);
    conn.setTimestamp(System.currentTimeMillis());
   
    SimpleElement elem = new SimpleElement(elemId);
    elem.setTimestamp(System.currentTimeMillis());
    elem.setTerms("Bloom", "filter");
   
    assertTrue(typeahead.index(elem));
    assertTrue(typeahead.index(conn));
    results = typeahead.search(uid, new String[] {"Bloo"});
   
    assertTrue(results.size() == 1);
    assertEquals(elem.getElementId(), results.get(0).getElementId());
    assertEquals(elem.getTimestamp(), results.get(0).getTimestamp());
   
    results = typeahead.search(uid, new String[] {"Bloo", "filter"});
    assertTrue(results.size() == 1);
    assertEquals(elem.getElementId(), results.get(0).getElementId());
    assertEquals(elem.getTimestamp(), results.get(0).getTimestamp());
   
    results = typeahead.search(uid, new String[] {"filter", "Bl"});
    assertTrue(results.size() == 1);
    assertEquals(elem.getElementId(), results.get(0).getElementId());
    assertEquals(elem.getTimestamp(), results.get(0).getTimestamp());
   
    results = typeahead.search(uid, new String[] {"filtering", "Bl"});
    assertTrue(results.size() == 0);
   
    typeahead.flush();
View Full Code Here

  protected int outOfRangeId() {
    return elementStore.getIndexStart() + elementStore.capacity() + rand.nextInt(elementStore.capacity());
  }
 
  public void testApiBasics() throws Exception {
    SimpleElement element;
    SimpleElement elementRead;
   
    int elementId = inRangeId();
    element = new SimpleElement(elementId);
    element.setTimestamp(System.currentTimeMillis());
    element.setTerms(new String[] {"simple", "element"});
    element.setScore(rand.nextFloat());
   
    long scn = System.currentTimeMillis();
    elementStore.setElement(elementId, element, scn);
    elementStore.sync();
    assertEquals(scn, elementStore.getLWMark());
    assertEquals(elementStore.getLWMark(), elementStore.getHWMark());
   
    elementRead = elementStore.getElement(elementId);
    assertTrue(elementRead != null);
    assertEquals(element.getElementId(), elementRead.getElementId());
    assertEquals(element.getTimestamp(), elementRead.getTimestamp());
    assertEquals(element.getScore(), elementRead.getScore());
    assertTrue(Arrays.equals(element.getTerms(), elementRead.getTerms()));
   
    scn++;
    elementStore.deleteElement(elementId, scn);
    assertTrue(elementStore.getElement(elementId) == null);
    assertEquals(scn, elementStore.getHWMark());
    assertTrue(elementStore.getLWMark() < elementStore.getHWMark());
   
    elementStore.persist();
    assertEquals(scn, elementStore.getLWMark());
    assertEquals(elementStore.getLWMark(), elementStore.getHWMark());
   
    elementId = outOfRangeId();
    try {
      elementRead = elementStore.getElement(elementId);
      assertEquals(null, elementRead);
    } catch(Exception e) {
      assertEquals(ArrayIndexOutOfBoundsException.class, e.getClass());
    }
   
    ElementSerializer<SimpleElement> serializer = createSerializer();
    byte[] elementBytes;

    // Test delete/setElement/getElementBytes
    elementId = inRangeId();
    element.setElementId(elementId);
   
    scn++;
    elementStore.deleteElement(elementId, scn);
    assertEquals(null, elementStore.getElement(elementId));
   
    scn++;
    elementStore.setElement(elementId, element, scn);
    elementBytes = elementStore.getElementBytes(elementId);
    SimpleElement deserializedElement = serializer.deserialize(elementBytes);
    assertEquals(element.getElementId(), deserializedElement.getElementId());
    assertTrue(Arrays.equals(element.getTerms(), deserializedElement.getTerms()));
   
    // Test delete/setElementBytes/getElement
    elementId = inRangeId();
    element.setElementId(elementId);
   
View Full Code Here

    ArrayStoreElement<SimpleElement> store = super.createElementStore(idStart, idCount);
    return new MemoryArrayStoreElement<SimpleElement>(store);
  }
 
  public void testParallelLoading() throws Exception {
    SimpleElement element;
   
    for(int i = 0; i < 1000; i++) {
      int elementId = inRangeId();
      element = new SimpleElement(elementId);
      element.setTimestamp(System.currentTimeMillis());
      element.setTerms(new String[] {"simple", "element." + elementId});
      element.setScore(rand.nextFloat());
     
      long scn = System.currentTimeMillis();
      elementStore.setElement(elementId, element, scn);
    }
   
View Full Code Here

 
  public void testExtendedSearch() throws Exception {
    int uid = 0;
   
    for(int i = 0; i < 1000; i++) {
      SimpleElement elem = new SimpleElement(i);
      elem.setTimestamp(System.currentTimeMillis());
      elem.setTerms(i+"bloom", i+"filter", i+"generic", i+"typeahead");
      elem.setScore(rand.nextFloat());
      typeahead.index(elem);
    }
   
    // SimpleCollector
    Collector<SimpleElement> c;
View Full Code Here

    List<Hit<SimpleElement>> hits;
    Collector<SimpleElement> collector;
   
    // index elements
    for(int i = 0, cnt = getElementStoreCapacity(); i < cnt; i++) {
      SimpleElement elem = new SimpleElement(i);
      elem.setScore(rand.nextFloat());
      elem.setTimestamp(System.currentTimeMillis());
      elem.setTerms(i+"bloom", i+"filter", i+"typeahead");
      typeahead.index(elem);
    }
   
    collector = new SortedCollector<SimpleElement>(10);
   
View Full Code Here

    Collector<SimpleElement> collector;

    collector = new SortedCollector<SimpleElement>(10);
   
    for(int i = 0; i < 1000; i++) {
      SimpleElement elem = new SimpleElement(i);
      elem.setTimestamp(System.currentTimeMillis());
      elem.setTerms(i+"bloom", i+"filter", i+"typeahead");
      typeahead.getElementStore().setElement(i, elem, elem.getTimestamp());
    }
   
    // No elements to browse
    typeahead.update(null);
   
View Full Code Here

     * Test ScannerTypeahead
     */
   
    // index elements
    for(int i = 0; i < 1000; i++) {
      SimpleElement elem = new SimpleElement(i);
      elem.setTimestamp(System.currentTimeMillis());
      elem.setTerms(i+"bloom", i+"filter", i+"typeahead");
      typeahead.index(elem);
    }
   
    collector = new SortedCollector<SimpleElement>(10);
    collector = typeahead.search(uid, new String[] {"1"}, collector);
View Full Code Here

  public void testApiBasics() throws Exception {
    int uid = 0;
    List<SimpleElement> results;
   
    int elemId = getElementStoreIndexStart() + rand.nextInt(getElementStoreCapacity());
    SimpleElement elem = new SimpleElement(elemId);
    elem.setTimestamp(System.currentTimeMillis());
    elem.setTerms("Bloom", "filter");
   
    typeahead.getElementStore().clear();
    typeahead.index(elem);
   
    results = typeahead.search(uid, new String[] {"Bloo"});
    assertTrue(results.size() == 1);
    assertEquals(elem.getElementId(), results.get(0).getElementId());
    assertEquals(elem.getTimestamp(), results.get(0).getTimestamp());
   
    results = typeahead.search(uid, new String[] {"Bloo", "filter"});
    assertTrue(results.size() == 1);
    assertEquals(elem.getElementId(), results.get(0).getElementId());
    assertEquals(elem.getTimestamp(), results.get(0).getTimestamp());
   
    results = typeahead.search(uid, new String[] {"filter", "Bl"});
    assertTrue(results.size() == 1);
    assertEquals(elem.getElementId(), results.get(0).getElementId());
    assertEquals(elem.getTimestamp(), results.get(0).getTimestamp());
   
    results = typeahead.search(uid, new String[] {"filtering", "Bl"});
    assertTrue(results.size() == 0);
   
    // Refresh
    typeahead.refresh();
   
    results = typeahead.search(uid, new String[] {"filter", "Bl"});
    assertTrue(results.size() == 1);
    assertEquals(elem.getElementId(), results.get(0).getElementId());
    assertEquals(elem.getTimestamp(), results.get(0).getTimestamp());
   
    results = typeahead.search(uid, new String[] {"filtering", "Bl"});
    assertTrue(results.size() == 0);
  }
View Full Code Here

 
  public void testIndexing() throws Exception {
    ConnectionsStore<String> connectionsStore = typeahead.getConnectionsStore();
   
    int elemId = getElementStoreIndexStart() + rand.nextInt(getElementStoreCapacity());
    SimpleElement elem = new SimpleElement(elemId);
    elem.setTimestamp(System.currentTimeMillis());
    elem.setTerms("Bloom", "filter", "generic", "typeahead");
   
    // Index the first element
    typeahead.getElementStore().clear();
    typeahead.index(elem);
    typeahead.flush();
   
    HashSet<String> termSet = new HashSet<String>();
    HashSet<String> prefixSet = new HashSet<String>(100);
    for(String term : elem.getTerms()) {
      termSet.add(term);
      int len = Math.min(term.length(), typeahead.getMaxKeyLength());
      for(int i = 1; i<= len; i++) {
        prefixSet.add(term.substring(0, i));
      }
    }
   
    HashSet<String> sourceSet = new HashSet<String>(100);
    Iterator<String> sourceIterator = connectionsStore.sourceIterator();
    while(sourceIterator.hasNext()) {
      sourceSet.add(sourceIterator.next());
    }
   
    HashSet<String> unionSet = new HashSet<String>(100);
    unionSet.addAll(sourceSet);
    unionSet.addAll(prefixSet);
   
    assertEquals(prefixSet.size(), sourceSet.size());
    assertEquals(prefixSet.size(), unionSet.size());
   
    if(dumpEnabled()) {
      System.out.println("\tmaxKeyLength " + typeahead.getMaxKeyLength());
      System.out.println("\t" + termSet.size() + " terms " + termSet);
      System.out.println("\t" + unionSet.size() + " prefixes " + unionSet);
    }
   
    sourceIterator = connectionsStore.sourceIterator();
    while(sourceIterator.hasNext()) {
      String source = sourceIterator.next();
      int[] connections = connectionsStore.getConnections(source);
      assertEquals(1, connections.length);
    }
   
    // Index the second element with the same terms as the first element
    SimpleElement elem2 = (SimpleElement)elem.clone();
    if(elem2.getElementId() > getElementStoreIndexStart()) {
      elem2.setElementId(elem2.getElementId() - 1);
    } else {
      elem2.setElementId(elem2.getElementId() + 1);
    }
    typeahead.index(elem2);
    typeahead.flush();
   
    sourceIterator = connectionsStore.sourceIterator();
View Full Code Here

TOP

Related Classes of cleo.search.SimpleElement

Copyright © 2018 www.massapicom. 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.