Package org.apache.lucene.index

Examples of org.apache.lucene.index.TermEnum


      if (parser == null) {
        return wrapper.getShorts(reader, field, FieldCache.DEFAULT_SHORT_PARSER);
      }
      final short[] retArray = new short[reader.maxDoc()];
      TermDocs termDocs = reader.termDocs();
      TermEnum termEnum = reader.terms (new Term (field));
      try {
        do {
          Term term = termEnum.term();
          if (term==null || term.field() != field) break;
          short termval = parser.parseShort(term.text());
          termDocs.seek (termEnum);
          while (termDocs.next()) {
            retArray[termDocs.doc()] = termval;
          }
        } while (termEnum.next());
      } catch (StopFillCacheException stop) {
      } finally {
        termDocs.close();
        termEnum.close();
      }
      return retArray;
    }
View Full Code Here


          return wrapper.getInts(reader, field, NUMERIC_UTILS_INT_PARSER);     
        }
      }
      int[] retArray = null;
      TermDocs termDocs = reader.termDocs();
      TermEnum termEnum = reader.terms (new Term (field));
      try {
        do {
          Term term = termEnum.term();
          if (term==null || term.field() != field) break;
          int termval = parser.parseInt(term.text());
          if (retArray == null) // late init
            retArray = new int[reader.maxDoc()];
          termDocs.seek (termEnum);
          while (termDocs.next()) {
            retArray[termDocs.doc()] = termval;
          }
        } while (termEnum.next());
      } catch (StopFillCacheException stop) {
      } finally {
        termDocs.close();
        termEnum.close();
      }
      if (retArray == null) // no values
        retArray = new int[reader.maxDoc()];
      return retArray;
    }
View Full Code Here

          return wrapper.getFloats(reader, field, NUMERIC_UTILS_FLOAT_PARSER);     
        }
    }
      float[] retArray = null;
      TermDocs termDocs = reader.termDocs();
      TermEnum termEnum = reader.terms (new Term (field));
      try {
        do {
          Term term = termEnum.term();
          if (term==null || term.field() != field) break;
          float termval = parser.parseFloat(term.text());
          if (retArray == null) // late init
            retArray = new float[reader.maxDoc()];
          termDocs.seek (termEnum);
          while (termDocs.next()) {
            retArray[termDocs.doc()] = termval;
          }
        } while (termEnum.next());
      } catch (StopFillCacheException stop) {
      } finally {
        termDocs.close();
        termEnum.close();
      }
      if (retArray == null) // no values
        retArray = new float[reader.maxDoc()];
      return retArray;
    }
View Full Code Here

          return wrapper.getLongs(reader, field, NUMERIC_UTILS_LONG_PARSER);     
        }
      }
      long[] retArray = null;
      TermDocs termDocs = reader.termDocs();
      TermEnum termEnum = reader.terms (new Term(field));
      try {
        do {
          Term term = termEnum.term();
          if (term==null || term.field() != field) break;
          long termval = parser.parseLong(term.text());
          if (retArray == null) // late init
            retArray = new long[reader.maxDoc()];
          termDocs.seek (termEnum);
          while (termDocs.next()) {
            retArray[termDocs.doc()] = termval;
          }
        } while (termEnum.next());
      } catch (StopFillCacheException stop) {
      } finally {
        termDocs.close();
        termEnum.close();
      }
      if (retArray == null) // no values
        retArray = new long[reader.maxDoc()];
      return retArray;
    }
View Full Code Here

          return wrapper.getDoubles(reader, field, NUMERIC_UTILS_DOUBLE_PARSER);     
        }
      }
      double[] retArray = null;
      TermDocs termDocs = reader.termDocs();
      TermEnum termEnum = reader.terms (new Term (field));
      try {
        do {
          Term term = termEnum.term();
          if (term==null || term.field() != field) break;
          double termval = parser.parseDouble(term.text());
          if (retArray == null) // late init
            retArray = new double[reader.maxDoc()];
          termDocs.seek (termEnum);
          while (termDocs.next()) {
            retArray[termDocs.doc()] = termval;
          }
        } while (termEnum.next());
      } catch (StopFillCacheException stop) {
      } finally {
        termDocs.close();
        termEnum.close();
      }
      if (retArray == null) // no values
        retArray = new double[reader.maxDoc()];
      return retArray;
    }
View Full Code Here

    protected Object createValue(IndexReader reader, Entry entryKey)
        throws IOException {
      String field = StringHelper.intern((String) entryKey.field);
      final String[] retArray = new String[reader.maxDoc()];
      TermDocs termDocs = reader.termDocs();
      TermEnum termEnum = reader.terms (new Term (field));
      try {
        do {
          Term term = termEnum.term();
          if (term==null || term.field() != field) break;
          String termval = term.text();
          termDocs.seek (termEnum);
          while (termDocs.next()) {
            retArray[termDocs.doc()] = termval;
          }
        } while (termEnum.next());
      } finally {
        termDocs.close();
        termEnum.close();
      }
      return retArray;
    }
View Full Code Here

        throws IOException {
      String field = StringHelper.intern((String) entryKey.field);
      final int[] retArray = new int[reader.maxDoc()];
      String[] mterms = new String[reader.maxDoc()+1];
      TermDocs termDocs = reader.termDocs();
      TermEnum termEnum = reader.terms (new Term (field));
      int t = 0// current term number

      // an entry for documents that have no terms in this field
      // should a document with no terms be at top or bottom?
      // this puts them at the top - if it is changed, FieldDocSortedHitQueue
      // needs to change as well.
      mterms[t++] = null;

      try {
        do {
          Term term = termEnum.term();
          if (term==null || term.field() != field || t >= mterms.length) break;

          // store term text
          mterms[t] = term.text();

          termDocs.seek (termEnum);
          while (termDocs.next()) {
            retArray[termDocs.doc()] = t;
          }

          t++;
        } while (termEnum.next());
      } finally {
        termDocs.close();
        termEnum.close();
      }

      if (t == 0) {
        // if there are no terms, make the term array
        // have a single null entry
View Full Code Here

    }

    protected Object createValue(IndexReader reader, Entry entryKey)
        throws IOException {
      String field = StringHelper.intern((String) entryKey.field);
      TermEnum enumerator = reader.terms (new Term (field));
      try {
        Term term = enumerator.term();
        if (term == null) {
          throw new RuntimeException ("no terms in field " + field + " - cannot determine type");
        }
        Object ret = null;
        if (term.field() == field) {
          String termtext = term.text().trim();

          try {
            Integer.parseInt (termtext);
            ret = wrapper.getInts (reader, field);
          } catch (NumberFormatException nfe1) {
            try {
              Long.parseLong(termtext);
              ret = wrapper.getLongs (reader, field);
            } catch (NumberFormatException nfe2) {
              try {
                Float.parseFloat (termtext);
                ret = wrapper.getFloats (reader, field);
              } catch (NumberFormatException nfe3) {
                ret = wrapper.getStringIndex (reader, field);
              }
            }
          }         
        } else {
          throw new RuntimeException ("field \"" + field + "\" does not appear to be indexed");
        }
        return ret;
      } finally {
        enumerator.close();
      }
    }
View Full Code Here

        return;
      }
      System.out.println("Loading date index to RAM at "+this.getClass().getSimpleName()+" class.");
     
      timestamps=new long[reader.maxDoc()];   
      TermEnum enumerator = reader.terms(new Term(fieldName, ""));      

      try {           
        if (enumerator.term()==null) {
          throw new IOException("No term found.");
        }

        TermDocs termDocs = reader.termDocs();
        try {                             
          do {                                 
            Term term = enumerator.term();
            if (term!=null && term.field().equals(fieldName)) {                           
              termDocs.seek(enumerator.term());
              while (termDocs.next()) { 
                // sanity check - validate if timestamp is already assigned to this document
                if (timestamps[termDocs.doc()]!=0) {
                  throw new IOException("Timestamp already assigned.");
                }
                // sanity check - validate if docid is smaller than the max docid
                if (termDocs.doc()>=reader.maxDoc()) {
                  throw new IOException("Timestamp with invalid docid "+termDocs.doc()+", since max docid is "+reader.maxDoc()+".");
                }
               
                timestamps[termDocs.doc()]=Long.parseLong(enumerator.term().text());
                if (timestamps[termDocs.doc()]<minTimestamp) {
                  minTimestamp=timestamps[termDocs.doc()];
                }
                if (timestamps[termDocs.doc()]>maxTimestamp) {
                  maxTimestamp=timestamps[termDocs.doc()];
                }
              }                       
            }
            else {
              break;
            }
          }
          while (enumerator.next());
        }
        finally {
          termDocs.close();
        }
      }
      finally {
        enumerator.close();
      }   

      // sanity check - validate if all documents have timestamps assigned     
      for (int i=0;i<timestamps.length;i++) {
        if (timestamps[i]==0) {
View Full Code Here

  }

  private void initFacetCounts(IndexReader reader) throws IOException {
    String fieldName = facetRequest.getFieldName();
    // term are enumerated by field name and within field names by term value
    TermEnum terms = reader.terms( new Term( fieldName, "" ) );
    try {
      while ( fieldName.equals( terms.term().field() ) ) {
        String fieldValue = terms.term().text();
        facetCounts.initCount( fieldValue );
        if ( !terms.next() ) {
          break;
        }
      }
    }
    finally {
      terms.close();
    }
  }
View Full Code Here

TOP

Related Classes of org.apache.lucene.index.TermEnum

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.