Package it.unimi.dsi.mg4j.search

Examples of it.unimi.dsi.mg4j.search.IntervalIterator


        secondIterator = !textTerm?secondIndexReader.documents(i):secondIndexReader.documents(firstIndex.termMap.list().get(i));       
        while(firstIterator.hasNext()){
          firstIterator.next();
          secondIterator.next()
          /** Compare position IntIterator*/
          IntervalIterator firstIntervalIt = firstIterator.intervalIterator(firstIndex);
          IntervalIterator secondIntervalIt = secondIterator.intervalIterator(secondIndex);
          while(firstIntervalIt.hasNext()){             
            Interval firstIntv = firstIntervalIt.nextInterval();
            Interval secondIntv = secondIntervalIt.nextInterval();
           
            System.out.println("left:" +  firstIntv.left + "   " + "right:" + firstIntv.right);
            Assert.assertEquals(firstIntv.left,secondIntv.left);
            Assert.assertEquals(firstIntv.right,secondIntv.right);
          }                 
View Full Code Here


* extremely frequent terms, with no perceivable effect on the score itself.
*/
public class VignaScorer extends AbstractWeightedScorer implements DelegatingScorer {
 
  public double score( final Index index ) throws IOException {
    final IntervalIterator it = documentIterator.intervalIterator( index );
    if ( it == IntervalIterators.TRUE || it == IntervalIterators.FALSE ) return 0;
    double score = 0, residual = 1, t;
    int extent = it.extent(), length;
    Interval interval;
    while ( ( interval = it.nextInterval() ) != null ) {
      length = interval.length();
      t = residual * Math.min( (double)extent / length, 1 ) / 2;
      residual -= t;
      score += t;
      if ( score > .99 ) return 1;
View Full Code Here

    scorer.setWeights( index2Weight );
    return scorer;
  }
 
  public double score( final Index index ) throws IOException {
    final IntervalIterator it = documentIterator.intervalIterator( index );
    if ( it == IntervalIterators.TRUE || it == IntervalIterators.FALSE ) return 0;
    double result = 0;
    int lt, count = 0;
    Interval interval;
    while ( ( interval = it.nextInterval() ) != null ) {
      count++;
      lt = interval.length();
      if ( lt < h ) result += 1;
      else result += Math.pow( h / (double) lt, alpha );
    }
View Full Code Here

   * @return <code>index2Interval</code>.
   * @throws IOException
   */
  public Reference2ObjectMap<Index,SelectedInterval[]> select( final DocumentIterator documentIterator, final Reference2ObjectMap<Index,SelectedInterval[]> index2Interval ) throws IOException {
    index2Interval.clear();
    IntervalIterator intervalIterator;
    for( Index index : documentIterator.indices() ) {
      if ( index.hasPositions ) {
        intervalIterator = documentIterator.intervalIterator( index );
        if ( intervalIterator == IntervalIterators.TRUE ) index2Interval.put( index, SelectedInterval.TRUE_ARRAY );
        else index2Interval.put( index, select( documentIterator.intervalIterator( index ) ) );
View Full Code Here

    Query query = simpleParser.parse( "(a|b|d)<(a|b|d)" );
    DocumentIteratorBuilderVisitor documentIteratorBuilderVisitor = new DocumentIteratorBuilderVisitor( null, index, Integer.MAX_VALUE );
    DocumentIterator documentIterator = query.accept( documentIteratorBuilderVisitor );
    documentIterator.nextDocument();
    IntervalIterator intervalIterator = documentIterator.intervalIterator();
    assertEquals( Interval.valueOf( 0, 1 ), intervalIterator.nextInterval() );
    assertEquals( Interval.valueOf( 1, 2 ), intervalIterator.nextInterval() );
    assertEquals( Interval.valueOf( 2, 4 ), intervalIterator.nextInterval() );
    assertFalse( intervalIterator.hasNext() );
    documentIterator.dispose();
  }
View Full Code Here

TOP

Related Classes of it.unimi.dsi.mg4j.search.IntervalIterator

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.