Java 类org.apache.lucene.document.IntField 实例源码

项目:jasperreports    文件:LuceneUtil.java   
protected void addContentField(int pageNo, JRPrintText element) throws IOException {
    String allText;
    JRStyledText styledText = getStyledText(element);
    if (styledText == null) {
        allText = "";
    } else {
        allText = styledText.getText();
    }

    if (allText != null && allText.length() > 0) {
        Field tf = new Field(CONTENT_FIELD, allText, fieldType);
        Document doc = new Document();
        doc.add(new IntField("pageNo", pageNo, Field.Store.YES));

        PrintElementId peid = PrintElementId.forElement(element);
        doc.add(new StringField("uid", peid.toString(), Field.Store.YES));

        displayTokens(allText, peid.toString());

        doc.add(tf);
        writer.addDocument(doc);
    }

}
项目:LiveQA    文件:QaPairIndex.java   
public static void createIndexQ(List<CQAResult> QASetList, Directory dir) {
    System.out.println("Creating Questions Index");
    IndexWriterConfig iwc = new IndexWriterConfig(ANALYZER.getVersion(), ANALYZER);
    iwc.setOpenMode(IndexWriterConfig.OpenMode.CREATE);
    try {
        IndexWriter writer = new IndexWriter(dir, iwc);
        int id = 0; //XXX seq_id
        for (CQAResult qaSet : QASetList) {
            Document doc = new Document();
            if (qaSet.subject == null) {
                id++;
                continue;
            }
            doc.add(new IntField(QID, id++, Field.Store.YES));
            doc.add(new TextField(BEST_ANSWER_FIELD, qaSet.subject, Field.Store.NO));
            doc.add(new TextField(Q_DESCRIPTION, qaSet.content, Field.Store.NO));
            writer.addDocument(doc);
        }
        writer.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}
项目:xxl-search    文件:LuceneSearchServiceImpl.java   
private Document buildDucument(ShopDTO shopDTO){
    Document document = new Document();

    document.add(new IntField(ShopDTO.ShopParam.SHOP_ID, shopDTO.getShopid(), Field.Store.YES));
    document.add(new TextField(ShopDTO.ShopParam.SHOP_NAME, shopDTO.getShopname(), Field.Store.YES));
    //document.add(new StringField(ShopDTO.ShopParam.CITY_ID, shopDTO.getCityid()+"", Field.Store.YES));
    document.add(new IntField(ShopDTO.ShopParam.CITY_ID, shopDTO.getCityid(), Field.Store.YES));
    if (shopDTO.getTaglist()!=null && shopDTO.getTaglist().size()>0) {
        for (int tagid: shopDTO.getTaglist()) {
            document.add(new IntField(ShopDTO.ShopParam.TAG_ID, tagid, Field.Store.YES));
        }
    }
    document.add(new IntField(ShopDTO.ShopParam.SCORE, shopDTO.getScore(), LuceneUtil.INT_FIELD_TYPE_STORED_SORTED));
    document.add(new IntField(ShopDTO.ShopParam.HOT_SCORE, shopDTO.getHotscore(), LuceneUtil.INT_FIELD_TYPE_STORED_SORTED));

    return document;
}
项目:LuceneDB    文件:LuceneObjectValuesDB.java   
/**
 * resolve field convertable premitive type
 *
 * premitive type
 * byte, short, int, long, float, double, char, boolean
 *
 * @param type field type
 * @return lucene field type
 */
private Class<? extends Field> resolveField(Type type) {
    if(type == String.class) {
        return StringField.class;
    } else if (type == Double.class || type == double.class) {
        return DoubleField.class;
    } else if(type == Float.class || type == float.class) {
        return FloatField.class;
    } else if(type == Integer.class || type == int.class ||
            type == Short.class || type == short.class ||
            type == Boolean.class || type == boolean.class ||
            type == Byte.class || type == byte.class ||
            type == Character.class || type == char.class) {
        return IntField.class;
    } else if(type == Long.class || type == long.class) {
        return LongField.class;
    }
    return null;
}
项目:LuceneDB    文件:UserDefineDocumentCreatorTest.java   
@Test
public void simpleTest() throws IOException {
    LuceneValuesDB valuesDB = new LuceneValuesDB();
    URL testPath = LuceneValuesDB.class.getResource("test.csv");

    @SuppressWarnings("unchecked")
    UserDefineDocumentCreator creator = new UserDefineDocumentCreator(new Class[] {
            IntField.class,
            StringField.class,
            FloatField.class,
            TextField.class
    }, new String[] {
            "docNum",
            "docType",
            "score",
            "text"
    });

    valuesDB.open(new File(testPath.getFile()), new CSVParser(), creator);

    assertEquals(1, valuesDB.search("docNum", 0).length);
    assertEquals(1, valuesDB.search("docType", "a").length);
    assertEquals(2, valuesDB.search("score", "0.1").length);
    assertEquals(1, valuesDB.search("text", "this is a pen").length);
}
项目:search    文件:DocMaker.java   
public DocState(boolean reuseFields, FieldType ft, FieldType bodyFt) {

      this.reuseFields = reuseFields;

      if (reuseFields) {
        fields =  new HashMap<>();
        numericFields = new HashMap<>();

        // Initialize the map with the default fields.
        fields.put(BODY_FIELD, new Field(BODY_FIELD, "", bodyFt));
        fields.put(TITLE_FIELD, new Field(TITLE_FIELD, "", ft));
        fields.put(DATE_FIELD, new Field(DATE_FIELD, "", ft));
        fields.put(ID_FIELD, new StringField(ID_FIELD, "", Field.Store.YES));
        fields.put(NAME_FIELD, new Field(NAME_FIELD, "", ft));

        numericFields.put(DATE_MSEC_FIELD, new LongField(DATE_MSEC_FIELD, 0L, Field.Store.NO));
        numericFields.put(TIME_SEC_FIELD, new IntField(TIME_SEC_FIELD, 0, Field.Store.NO));

        doc = new Document();
      } else {
        numericFields = null;
        fields = null;
        doc = null;
      }
    }
项目:search    文件:SpatialExample.java   
private Document newSampleDocument(int id, Shape... shapes) {
  Document doc = new Document();
  doc.add(new IntField("id", id, Field.Store.YES));
  //Potentially more than one shape in this field is supported by some
  // strategies; see the javadocs of the SpatialStrategy impl to see.
  for (Shape shape : shapes) {
    for (IndexableField f : strategy.createIndexableFields(shape)) {
      doc.add(f);
    }
    //store it too; the format is up to you
    //  (assume point in this example)
    Point pt = (Point) shape;
    doc.add(new StoredField(strategy.getFieldName(), pt.getX()+" "+pt.getY()));
  }

  return doc;
}
项目:search    文件:TestExpressionSorts.java   
@Override
public void setUp() throws Exception {
  super.setUp();
  dir = newDirectory();
  RandomIndexWriter iw = new RandomIndexWriter(random(), dir);
  int numDocs = TestUtil.nextInt(random(), 2049, 4000);
  for (int i = 0; i < numDocs; i++) {
    Document document = new Document();
    document.add(newTextField("english", English.intToEnglish(i), Field.Store.NO));
    document.add(newTextField("oddeven", (i % 2 == 0) ? "even" : "odd", Field.Store.NO));
    document.add(newStringField("byte", "" + ((byte) random().nextInt()), Field.Store.NO));
    document.add(newStringField("short", "" + ((short) random().nextInt()), Field.Store.NO));
    document.add(new IntField("int", random().nextInt(), Field.Store.NO));
    document.add(new LongField("long", random().nextLong(), Field.Store.NO));

    document.add(new FloatField("float", random().nextFloat(), Field.Store.NO));
    document.add(new DoubleField("double", random().nextDouble(), Field.Store.NO));

    document.add(new NumericDocValuesField("intdocvalues", random().nextInt()));
    document.add(new FloatDocValuesField("floatdocvalues", random().nextFloat()));
    iw.addDocument(document);
  }
  reader = iw.getReader();
  iw.close();
  searcher = newSearcher(reader);
}
项目:search    文件:TestTerms.java   
public void testIntFieldMinMax() throws Exception {
  Directory dir = newDirectory();
  RandomIndexWriter w = new RandomIndexWriter(random(), dir);
  int numDocs = atLeast(100);
  int minValue = Integer.MAX_VALUE;
  int maxValue = Integer.MIN_VALUE;
  for(int i=0;i<numDocs;i++ ){
    Document doc = new Document();
    int num = random().nextInt();
    minValue = Math.min(num, minValue);
    maxValue = Math.max(num, maxValue);
    doc.add(new IntField("field", num, Field.Store.NO));
    w.addDocument(doc);
  }

  IndexReader r = w.getReader();
  Terms terms = MultiFields.getTerms(r, "field");
  assertEquals(minValue, NumericUtils.getMinInt(terms));
  assertEquals(maxValue, NumericUtils.getMaxInt(terms));

  r.close();
  w.close();
  dir.close();
}
项目:mytourbook    文件:FTSearchManager.java   
private static void createDoc_Tour( final IndexWriter indexWriter,
                                    final long tourId,
                                    final String title,
                                    final String description,
                                    final long time) throws IOException {

    final Document doc = new Document();

    doc.add(new IntField(SEARCH_FIELD_DOC_SOURCE, DOC_SOURCE_TOUR, Store.YES));

    doc.add(new LongField(SEARCH_FIELD_TOUR_ID, tourId, Store.YES));
    doc.add(new LongField(SEARCH_FIELD_TIME, time, createFieldType_Long()));

    if (title != null) {
        doc.add(new Field(SEARCH_FIELD_TITLE, title, createFieldType_Text()));
    }

    if (description != null) {
        doc.add(new Field(SEARCH_FIELD_DESCRIPTION, description, createFieldType_Text()));
    }

    indexWriter.addDocument(doc);
}
项目:NYBC    文件:DocMaker.java   
public DocState(boolean reuseFields, FieldType ft, FieldType bodyFt) {

      this.reuseFields = reuseFields;

      if (reuseFields) {
        fields =  new HashMap<String,Field>();
        numericFields = new HashMap<String,Field>();

        // Initialize the map with the default fields.
        fields.put(BODY_FIELD, new Field(BODY_FIELD, "", bodyFt));
        fields.put(TITLE_FIELD, new Field(TITLE_FIELD, "", ft));
        fields.put(DATE_FIELD, new Field(DATE_FIELD, "", ft));
        fields.put(ID_FIELD, new StringField(ID_FIELD, "", Field.Store.YES));
        fields.put(NAME_FIELD, new Field(NAME_FIELD, "", ft));

        numericFields.put(DATE_MSEC_FIELD, new LongField(DATE_MSEC_FIELD, 0L, Field.Store.NO));
        numericFields.put(TIME_SEC_FIELD, new IntField(TIME_SEC_FIELD, 0, Field.Store.NO));

        doc = new Document();
      } else {
        numericFields = null;
        fields = null;
        doc = null;
      }
    }
项目:taxonomy    文件:InMemoryIAViewRepository.java   
private List<Field> getListOfUnmodifiedFieldsFromIAView(InformationAssetView iaView) {
List<Field> listOfUnmodifiedFields = new ArrayList<Field>();
if (iaView.getCATDOCREF() != null) {
    listOfUnmodifiedFields.add(new TextField(InformationAssetViewFields.CATDOCREF.toString(), iaView
        .getCATDOCREF(), Field.Store.NO));
}
if (iaView.getDESCRIPTION() != null) {
    listOfUnmodifiedFields.add(new TextField(InformationAssetViewFields.DESCRIPTION.toString(), iaView
        .getDESCRIPTION(), Field.Store.NO));
}
if (iaView.getTITLE() != null) {
    listOfUnmodifiedFields.add(new TextField(InformationAssetViewFields.TITLE.toString(), iaView.getTITLE(),
        Field.Store.NO));
}
if (iaView.getSOURCE() != null) {
    listOfUnmodifiedFields.add(new IntField(InformationAssetViewFields.SOURCE.toString(), Integer
        .parseInt(iaView.getSOURCE()), Field.Store.NO));
}
return listOfUnmodifiedFields;
   }
项目:bluima    文件:Txt2PubmedIdIndexer.java   
@Override
public void process(JCas jCas) throws AnalysisEngineProcessException {
    int pmid = BlueCasUtil.getHeaderIntDocId(jCas);
    if (!BlueCasUtil.isEmptyText(jCas)) {
        // System.out.println("indexing:: " + pmid);
        Document doc = new Document();
        doc.add(new IntField(PMID_FIELD, pmid, Store.YES));
        doc.add(new TextField(CONTENT_FIELD, jCas.getDocumentText(),
                Store.YES));
        doc.add(new TextField(TITLE_FIELD, getTitle(jCas), Store.YES));
        try {
            indexWriter.addDocument(doc);
        } catch (IOException e) {
            throw new AnalysisEngineProcessException(e);
        }
    }
}
项目:incubator-blur    文件:IntFieldTypeDefinition.java   
@Override
public void configure(String fieldNameForThisInstance, Map<String, String> properties, Configuration configuration) {
  String precisionStepStr = properties.get(NUMERIC_PRECISION_STEP);
  if (precisionStepStr != null) {
    _precisionStep = Integer.parseInt(precisionStepStr);
    _typeStored = new FieldType(IntField.TYPE_STORED);
    _typeStored.setNumericPrecisionStep(_precisionStep);
    _typeStored.freeze();
    _typeNotStored = new FieldType(IntField.TYPE_NOT_STORED);
    _typeNotStored.setNumericPrecisionStep(_precisionStep);
    _typeNotStored.freeze();
  } else {
    _typeStored = IntField.TYPE_STORED;
    _typeNotStored = IntField.TYPE_NOT_STORED;
  }
}
项目:read-open-source-code    文件:DocMaker.java   
public DocState(boolean reuseFields, FieldType ft, FieldType bodyFt) {

      this.reuseFields = reuseFields;

      if (reuseFields) {
        fields =  new HashMap<String,Field>();
        numericFields = new HashMap<String,Field>();

        // Initialize the map with the default fields.
        fields.put(BODY_FIELD, new Field(BODY_FIELD, "", bodyFt));
        fields.put(TITLE_FIELD, new Field(TITLE_FIELD, "", ft));
        fields.put(DATE_FIELD, new Field(DATE_FIELD, "", ft));
        fields.put(ID_FIELD, new StringField(ID_FIELD, "", Field.Store.YES));
        fields.put(NAME_FIELD, new Field(NAME_FIELD, "", ft));

        numericFields.put(DATE_MSEC_FIELD, new LongField(DATE_MSEC_FIELD, 0L, Field.Store.NO));
        numericFields.put(TIME_SEC_FIELD, new IntField(TIME_SEC_FIELD, 0, Field.Store.NO));

        doc = new Document();
      } else {
        numericFields = null;
        fields = null;
        doc = null;
      }
    }
项目:read-open-source-code    文件:DocMaker.java   
public DocState(boolean reuseFields, FieldType ft, FieldType bodyFt) {

      this.reuseFields = reuseFields;

      if (reuseFields) {
        fields =  new HashMap<String,Field>();
        numericFields = new HashMap<String,Field>();

        // Initialize the map with the default fields.
        fields.put(BODY_FIELD, new Field(BODY_FIELD, "", bodyFt));
        fields.put(TITLE_FIELD, new Field(TITLE_FIELD, "", ft));
        fields.put(DATE_FIELD, new Field(DATE_FIELD, "", ft));
        fields.put(ID_FIELD, new StringField(ID_FIELD, "", Field.Store.YES));
        fields.put(NAME_FIELD, new Field(NAME_FIELD, "", ft));

        numericFields.put(DATE_MSEC_FIELD, new LongField(DATE_MSEC_FIELD, 0L, Field.Store.NO));
        numericFields.put(TIME_SEC_FIELD, new IntField(TIME_SEC_FIELD, 0, Field.Store.NO));

        doc = new Document();
      } else {
        numericFields = null;
        fields = null;
        doc = null;
      }
    }
项目:bioinformatics    文件:TextSearchIndex.java   
public void addLine(int lineNumber, String text) {
    if (loadExistingIndex) {
        throw new IllegalStateException("Cannot add lines to an already existing index.");
    }
    Document luceneDocument = new Document();
    luceneDocument.add(new IntField(LINE_NUMBER, (int) (lineNumber - 1), Field.Store.YES));
    luceneDocument.add(new TextField(LINE_TEXT, text, Field.Store.NO));

    try {
        synchronized (this) {
            luceneIndexWriter.addDocument(luceneDocument);
        }
    } catch (IOException e) {
        logger.warn(e.getMessage(), e);
    }
}
项目:Maskana-Gestor-de-Conocimiento    文件:DocMaker.java   
public DocState(boolean reuseFields, FieldType ft, FieldType bodyFt) {

      this.reuseFields = reuseFields;

      if (reuseFields) {
        fields =  new HashMap<String,Field>();
        numericFields = new HashMap<String,Field>();

        // Initialize the map with the default fields.
        fields.put(BODY_FIELD, new Field(BODY_FIELD, "", bodyFt));
        fields.put(TITLE_FIELD, new Field(TITLE_FIELD, "", ft));
        fields.put(DATE_FIELD, new Field(DATE_FIELD, "", ft));
        fields.put(ID_FIELD, new StringField(ID_FIELD, "", Field.Store.YES));
        fields.put(NAME_FIELD, new Field(NAME_FIELD, "", ft));

        numericFields.put(DATE_MSEC_FIELD, new LongField(DATE_MSEC_FIELD, 0L, Field.Store.NO));
        numericFields.put(TIME_SEC_FIELD, new IntField(TIME_SEC_FIELD, 0, Field.Store.NO));

        doc = new Document();
      } else {
        numericFields = null;
        fields = null;
        doc = null;
      }
    }
项目:Maskana-Gestor-de-Conocimiento    文件:TestExpressionSorts.java   
@Override
public void setUp() throws Exception {
  super.setUp();
  dir = newDirectory();
  RandomIndexWriter iw = new RandomIndexWriter(random(), dir);
  int numDocs = _TestUtil.nextInt(random(), 2049, 4000);
  for (int i = 0; i < numDocs; i++) {
    Document document = new Document();
    document.add(newTextField("english", English.intToEnglish(i), Field.Store.NO));
    document.add(newTextField("oddeven", (i % 2 == 0) ? "even" : "odd", Field.Store.NO));
    document.add(newStringField("byte", "" + ((byte) random().nextInt()), Field.Store.NO));
    document.add(newStringField("short", "" + ((short) random().nextInt()), Field.Store.NO));
    document.add(new IntField("int", random().nextInt(), Field.Store.NO));
    document.add(new LongField("long", random().nextLong(), Field.Store.NO));

    document.add(new FloatField("float", random().nextFloat(), Field.Store.NO));
    document.add(new DoubleField("double", random().nextDouble(), Field.Store.NO));

    document.add(new NumericDocValuesField("intdocvalues", random().nextInt()));
    document.add(new FloatDocValuesField("floatdocvalues", random().nextFloat()));
    iw.addDocument(document);
  }
  reader = iw.getReader();
  iw.close();
  searcher = newSearcher(reader);
}
项目:dremio-oss    文件:IndexKey.java   
void addToDoc(Document doc, Integer value){
  Preconditions.checkArgument(valueType == Integer.class);
  if(value == null){
    return;
  }

  doc.add(new IntField(indexFieldName, value, stored ? Store.YES : Store.NO));
  if(isSorted()){
    Preconditions.checkArgument(sortedValueType == SearchFieldSorting.FieldType.INTEGER);
    doc.add(new NumericDocValuesField(indexFieldName, (long)value));
  }
}
项目:sql-layer    文件:IndexedField.java   
public Field getField(ValueSource value) {
    if (value.isNull()) 
        return null;
    Field.Store store = Field.Store.NO; // Only store hkey.
    switch (fieldType) {
    case INT:
        switch (TInstance.underlyingType(value.getType())) {
        case INT_8:
            return new IntField(name, value.getInt8(), store);
        case INT_16:
            return new IntField(name, value.getInt16(), store);
        case UINT_16:
            return new IntField(name, value.getUInt16(), store);
        case INT_32:
        default:
            return new IntField(name, value.getInt32(), store);
        }
    case LONG:
        return new LongField(name, value.getInt64(), store);
    case FLOAT:
        return new FloatField(name, value.getFloat(), store);
    case DOUBLE:
        return new DoubleField(name, value.getDouble(), store);
    case STRING:
        switch (TInstance.underlyingType(value.getType())) {
        case STRING:
            return new StringField(name, value.getString(), store);
        default:
            {
                StringBuilder str = new StringBuilder();
                value.getType().format(value, AkibanAppender.of(str));
                return new StringField(name, str.toString(), store);
            }
        }
    case TEXT:
        return new TextField(name, value.getString(), store);
    default:
        return null;
    }
}
项目:LuceneDB    文件:LuceneObjectValuesDB.java   
/**
 * add lucene field in document
 * @param doc document
 * @param name fieldName
 * @param val value
 * @param type field original Type
 * @param store store
 * @param textFieldable isTextField
 * @return if true, added document
 */
private boolean addField(Document doc, String name, Object val, Type type, Store store, TextFieldable textFieldable, NoIndex noIndex) {
    boolean add = true;
    if (noIndex != null) {
        if (type == Character.class || type == char.class) {
            val = (int) val;
        } else if(type == Boolean.class || type == boolean.class) {
            val = (boolean)val ? 1 : 0;
        }
        doc.add(new StoredField(name, val.toString()));
    } else if (textFieldable != null) {
        doc.add(new TextField(name, val.toString(), store));
    } else if(type == String.class) {
        doc.add(new StringField(name, val.toString(), store));
    }else if (type == Double.class || type == double.class) {
        doc.add(new DoubleField(name, (double) val, store));
    } else if(type == Float.class || type == float.class) {
        doc.add(new FloatField(name, (float) val, store));
    } else if(type == Short.class || type == short.class ||
            type == Integer.class || type == int.class ||
            type == Byte.class || type == byte.class) {
        doc.add(new IntField(name, Integer.valueOf(val.toString()), store));
    } else if(type == Character.class || type == char.class) {
        doc.add(new IntField(name, Integer.valueOf((char)val), store));
    } else if(type == Boolean.class || type == boolean.class) {
        if ((boolean)val) {
            doc.add(new IntField(name, 1, store));
        } else {
            doc.add(new IntField(name, 0, store));
        }
    } else if(type == Long.class || type == long.class) {
        doc.add(new LongField(name, (long) val, store));
    } else {
        add = false;
    }
    return add;
}
项目:search    文件:HighlighterTest.java   
@Override
public void setUp() throws Exception {
  super.setUp();

  a = new MockAnalyzer(random(), MockTokenizer.WHITESPACE, false);
  analyzer = new MockAnalyzer(random(), MockTokenizer.SIMPLE, true, MockTokenFilter.ENGLISH_STOPSET);
  dir = newDirectory();
  ramDir = newDirectory();
  IndexWriter writer = new IndexWriter(ramDir, newIndexWriterConfig(new MockAnalyzer(random(), MockTokenizer.SIMPLE, true, MockTokenFilter.ENGLISH_STOPSET)));
  for (String text : texts) {
    addDoc(writer, text);
  }
  Document doc = new Document();
  doc.add(new IntField(NUMERIC_FIELD_NAME, 1, Field.Store.NO));
  doc.add(new StoredField(NUMERIC_FIELD_NAME, 1));
  writer.addDocument(doc, analyzer);

  doc = new Document();
  doc.add(new IntField(NUMERIC_FIELD_NAME, 3, Field.Store.NO));
  doc.add(new StoredField(NUMERIC_FIELD_NAME, 3));
  writer.addDocument(doc, analyzer);

  doc = new Document();
  doc.add(new IntField(NUMERIC_FIELD_NAME, 5, Field.Store.NO));
  doc.add(new StoredField(NUMERIC_FIELD_NAME, 5));
  writer.addDocument(doc, analyzer);

  doc = new Document();
  doc.add(new IntField(NUMERIC_FIELD_NAME, 7, Field.Store.NO));
  doc.add(new StoredField(NUMERIC_FIELD_NAME, 7));
  writer.addDocument(doc, analyzer);

  writer.forceMerge(1);
  writer.close();
  reader = DirectoryReader.open(ramDir);
  numHighlights = 0;
}
项目:search    文件:ReadTokensTask.java   
@Override
public int doLogic() throws Exception {
  List<IndexableField> fields = doc.getFields();
  Analyzer analyzer = getRunData().getAnalyzer();
  int tokenCount = 0;
  for(final IndexableField field : fields) {
    if (!field.fieldType().tokenized() ||
        field instanceof IntField ||
        field instanceof LongField ||
        field instanceof FloatField ||
        field instanceof DoubleField) {
      continue;
    }

    final TokenStream stream = field.tokenStream(analyzer, null);
    // reset the TokenStream to the first token
    stream.reset();

    TermToBytesRefAttribute termAtt = stream.getAttribute(TermToBytesRefAttribute.class);
    while(stream.incrementToken()) {
      termAtt.fillBytesRef();
      tokenCount++;
    }
    stream.end();
    stream.close();
  }
  totalTokenCount += tokenCount;
  return tokenCount;
}
项目:search    文件:TestParser.java   
@BeforeClass
public static void beforeClass() throws Exception {
  // TODO: rewrite test (this needs to set QueryParser.enablePositionIncrements, too, for work with CURRENT):
  Analyzer analyzer = new MockAnalyzer(random(), MockTokenizer.WHITESPACE, true, MockTokenFilter.ENGLISH_STOPSET);
  //initialize the parser
  builder = new CorePlusExtensionsParser("contents", analyzer);

  BufferedReader d = new BufferedReader(new InputStreamReader(
      TestParser.class.getResourceAsStream("reuters21578.txt"), StandardCharsets.US_ASCII));
  dir = newDirectory();
  IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(analyzer));
  String line = d.readLine();
  while (line != null) {
    int endOfDate = line.indexOf('\t');
    String date = line.substring(0, endOfDate).trim();
    String content = line.substring(endOfDate).trim();
    Document doc = new Document();
    doc.add(newTextField("date", date, Field.Store.YES));
    doc.add(newTextField("contents", content, Field.Store.YES));
    doc.add(new IntField("date2", Integer.valueOf(date), Field.Store.NO));
    writer.addDocument(doc);
    line = d.readLine();
  }
  d.close();
  writer.close();
  reader = DirectoryReader.open(dir);
  searcher = newSearcher(reader);

}
项目:search    文件:TestMultiValuedNumericRangeQuery.java   
/** Tests NumericRangeQuery on a multi-valued field (multiple numeric values per document).
 * This test ensures, that a classical TermRangeQuery returns exactly the same document numbers as
 * NumericRangeQuery (see SOLR-1322 for discussion) and the multiple precision terms per numeric value
 * do not interfere with multiple numeric values.
 */
public void testMultiValuedNRQ() throws Exception {
  Directory directory = newDirectory();
  RandomIndexWriter writer = new RandomIndexWriter(random(), directory,
      newIndexWriterConfig(new MockAnalyzer(random()))
      .setMaxBufferedDocs(TestUtil.nextInt(random(), 50, 1000)));

  DecimalFormat format = new DecimalFormat("00000000000", new DecimalFormatSymbols(Locale.ROOT));

  int num = atLeast(500);
  for (int l = 0; l < num; l++) {
    Document doc = new Document();
    for (int m=0, c=random().nextInt(10); m<=c; m++) {
      int value = random().nextInt(Integer.MAX_VALUE);
      doc.add(newStringField("asc", format.format(value), Field.Store.NO));
      doc.add(new IntField("trie", value, Field.Store.NO));
    }
    writer.addDocument(doc);
  }
  IndexReader reader = writer.getReader();
  writer.close();

  IndexSearcher searcher=newSearcher(reader);
  num = atLeast(50);
  for (int i = 0; i < num; i++) {
    int lower=random().nextInt(Integer.MAX_VALUE);
    int upper=random().nextInt(Integer.MAX_VALUE);
    if (lower>upper) {
      int a=lower; lower=upper; upper=a;
    }
    TermRangeQuery cq=TermRangeQuery.newStringRange("asc", format.format(lower), format.format(upper), true, true);
    NumericRangeQuery<Integer> tq=NumericRangeQuery.newIntRange("trie", lower, upper, true, true);
    TopDocs trTopDocs = searcher.search(cq, 1);
    TopDocs nrTopDocs = searcher.search(tq, 1);
    assertEquals("Returned count for NumericRangeQuery and TermRangeQuery must be equal", trTopDocs.totalHits, nrTopDocs.totalHits );
  }
  reader.close();
  directory.close();
}
项目:search    文件:TestTermsEnum.java   
private void addDoc(RandomIndexWriter w, Collection<String> terms, Map<BytesRef,Integer> termToID, int id) throws IOException {
  Document doc = new Document();
  doc.add(new IntField("id", id, Field.Store.NO));
  if (VERBOSE) {
    System.out.println("TEST: addDoc id:" + id + " terms=" + terms);
  }
  for (String s2 : terms) {
    doc.add(newStringField("f", s2, Field.Store.NO));
    termToID.put(new BytesRef(s2), id);
  }
  w.addDocument(doc);
  terms.clear();
}
项目:search    文件:SolrIndexSearcher.java   
@Override
public void intField(FieldInfo fieldInfo, int value) {
  FieldType ft = new FieldType(IntField.TYPE_NOT_STORED);
  ft.setStored(true);
  ft.setIndexed(fieldInfo.isIndexed());
  doc.add(new IntField(fieldInfo.name, value, ft));
}
项目:mytourbook    文件:FTSearchManager.java   
private static void createDoc_Marker(   final IndexWriter indexWriter,
                                            final long markerId,
                                            final long tourId,
                                            final String title,
                                            final String description,
                                            final long time) throws IOException {

//      private static final FieldType          _longSearchField            = new FieldType(LongField.TYPE_STORED);
//      private static final FieldType          _textSearchField            = new FieldType(TextField.TYPE_STORED);
        // {
        // _longSearchField.setIndexOptions(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS);
        // _textSearchField.setIndexOptions(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS);
        // }

        final Document doc = new Document();

        doc.add(new IntField(SEARCH_FIELD_DOC_SOURCE, DOC_SOURCE_TOUR_MARKER, Store.YES));

        doc.add(new LongField(SEARCH_FIELD_MARKER_ID, markerId, Store.YES));
        doc.add(new LongField(SEARCH_FIELD_TOUR_ID, tourId, Store.YES));
        doc.add(new LongField(SEARCH_FIELD_TIME, time, createFieldType_Long()));

        if (title != null) {
            doc.add(new Field(SEARCH_FIELD_TITLE, title, createFieldType_Text()));
        }

        if (description != null) {
            doc.add(new Field(SEARCH_FIELD_DESCRIPTION, description, createFieldType_Text()));
        }

        indexWriter.addDocument(doc);
    }
项目:mytourbook    文件:FTSearchManager.java   
private static void createDoc_WayPoint( final IndexWriter indexWriter,
                                        final long markerId,
                                        final long tourId,
                                        final String title,
                                        final String description,
                                        final long time) throws IOException {

    final Document doc = new Document();

    doc.add(new IntField(SEARCH_FIELD_DOC_SOURCE, DOC_SOURCE_WAY_POINT, Store.YES));

    doc.add(new LongField(SEARCH_FIELD_MARKER_ID, markerId, Store.YES));
    doc.add(new LongField(SEARCH_FIELD_TOUR_ID, tourId, Store.YES));

    if (time != 0) {
        doc.add(new LongField(SEARCH_FIELD_TIME, time, createFieldType_Long()));
    }

    if (title != null) {
        doc.add(new Field(SEARCH_FIELD_TITLE, title, createFieldType_Text()));
    }

    if (description != null) {
        doc.add(new Field(SEARCH_FIELD_DESCRIPTION, description, createFieldType_Text()));
    }

    indexWriter.addDocument(doc);
}
项目:OTF-Query-Services    文件:LuceneIndexer.java   
@Override
public Long call() throws Exception {
    IndexedGenerationCallable latch = componentNidLatch.remove(chronicle.getNid());
    Document doc = new Document();

    doc.add(new IntField(ComponentProperty.COMPONENT_ID.name(), chronicle.getNid(),
            LuceneIndexer.indexedComponentNidType));
    addFields(chronicle, doc);

    // Note that the addDocument operation could cause duplicate documents to be
    // added to the index if a new luceneVersion is added after initial index
    // creation. It does this to avoid the performance penalty of
    // finding and deleting documents prior to inserting a new one.
    //
    // At this point, the number of duplicates should be
    // small, and we are willing to accept a small number of duplicates
    // because the new versions are additive (we don't allow deletion of content)
    // so the search results will be the same. Duplicates can be removed
    // by regenerating the index.
    long indexGeneration = trackingIndexWriter.addDocument(doc);

    if (latch != null) {
        latch.setIndexGeneration(indexGeneration);
    }

    return indexGeneration;
}
项目:medline-indexer    文件:MedlineCitationIndexer.java   
public void indexDocs(File file) throws JDOMException, IOException {
  MedlineCitationSetReader reader = new MedlineCitationSetReader(file);
  while (reader.hasNext()) {
    MedlineCitation citation = reader.next();
    Document doc = new Document();
    doc.add(new IntField(PMID_FIELD, citation.getPmid(), Field.Store.YES));
    doc.add(new TextField(ARTICLE_TITLE_FIELD, citation.getArticleTitle(), Field.Store.YES));
    doc.add(new TextField(ABSTRACT_TEXT_FIELD, citation.getAbstractText(), Field.Store.YES));
    writer.addDocument(doc);
  }
  writer.commit();
}
项目:Android-Indexing-Service    文件:FileIndexer.java   
/**
 * Creates a Document containing contents and metadata for a specific page of a file
 * @param writer The writer used to save the metadata
 * @param file The file that the page belongs to
 * @param page The index of the page in the file
 * @param contents The string contents of the file
 */
public static void Build(IndexWriter writer, File file, int page,
                         String contents) {
    if(file.canRead()) {
        try {
            //Log.i(TAG, "Started Indexing file: " + file.getName() + " "
            //      + page);
            Document doc = new Document();
            doc.add(new StringField("id", file.getPath() + ":" + page,
                    Field.Store.NO));
            doc.add(new StringField("path", file.getPath(),
                    Field.Store.YES));
            doc.add(new LongField("modified", file.lastModified(),
                    Field.Store.YES));
            // for(int i = 0; i < contents.size(); i++){
            doc.add(new TextField("text", "" + contents, Field.Store.YES));
            doc.add(new IntField("page", page, Field.Store.YES));
            // }
            // TODO - Check what OpenMode.CREATE_OR_APPEND does; I think updateDocument should
            // always be used with CREATE_OR_APPEND, the if part may need to be removed
            if(writer.getConfig().getOpenMode() == OpenMode.CREATE) {
                writer.addDocument(doc);
            } else {
                // TODO - Test UpdateDocument
                writer.updateDocument(new Term("id", file.getPath() + ":"
                        + page), doc);
            }
            Log.i(TAG, "Done Indexing file: " + file.getName() + " " + page);
        } catch(Exception e) {
            Log.e(TAG, "Error ", e);
        }
    }
}
项目:Android-Indexing-Service    文件:FileIndexer.java   
/**
 * Creates the metadata Document for a given file
 * @param filename The path of the file that the metadata will describe
 * @param pages The number of pages in the file; -1 if it's contents are not indexed
 * @return 0 upon successful index creation; -1 on error
 */
public int buildIndex(String filename, int pages) {
    try {
        //Log.i(TAG, "Writing Metadata");
        Document doc = new Document();
        File file = new File(filename);
        doc.add(new StringField("id", file.getPath() + ":meta", Field.Store.NO));
        doc.add(new LongField("modified", file.lastModified(), Field.Store.YES));
        doc.add(new StringField("path", file.getAbsolutePath(), Field.Store.YES));
        if(pages != -1) {
            doc.add(new IntField("pages", pages, Field.Store.YES));
        }
        if(writer.getConfig().getOpenMode() == OpenMode.CREATE) {
            writer.addDocument(doc);
        } else {
            writer.updateDocument(new Term("id", file.getPath() + ":meta"),
                    doc);
        }
        //Log.i(TAG, "Done creating metadata for file " + filename);
        // Must only call ForceMerge and Commit once per document as they are very resource heavy operations
        writer.commit();
    } catch(Exception e) {
        Log.e(TAG, "Error", e);
        return -1;
    }
    return 0;
}
项目:NYBC    文件:HighlighterTest.java   
@Override
public void setUp() throws Exception {
  super.setUp();

  a = new MockAnalyzer(random(), MockTokenizer.WHITESPACE, false);
  analyzer = new MockAnalyzer(random(), MockTokenizer.SIMPLE, true, MockTokenFilter.ENGLISH_STOPSET, true);
  dir = newDirectory();
  ramDir = newDirectory();
  IndexWriter writer = new IndexWriter(ramDir, newIndexWriterConfig(
      TEST_VERSION_CURRENT, new MockAnalyzer(random(), MockTokenizer.SIMPLE, true, MockTokenFilter.ENGLISH_STOPSET, true)));
  for (String text : texts) {
    addDoc(writer, text);
  }
  Document doc = new Document();
  doc.add(new IntField(NUMERIC_FIELD_NAME, 1, Field.Store.NO));
  doc.add(new StoredField(NUMERIC_FIELD_NAME, 1));
  writer.addDocument(doc, analyzer);

  doc = new Document();
  doc.add(new IntField(NUMERIC_FIELD_NAME, 3, Field.Store.NO));
  doc.add(new StoredField(NUMERIC_FIELD_NAME, 3));
  writer.addDocument(doc, analyzer);

  doc = new Document();
  doc.add(new IntField(NUMERIC_FIELD_NAME, 5, Field.Store.NO));
  doc.add(new StoredField(NUMERIC_FIELD_NAME, 5));
  writer.addDocument(doc, analyzer);

  doc = new Document();
  doc.add(new IntField(NUMERIC_FIELD_NAME, 7, Field.Store.NO));
  doc.add(new StoredField(NUMERIC_FIELD_NAME, 7));
  writer.addDocument(doc, analyzer);

  writer.forceMerge(1);
  writer.close();
  reader = DirectoryReader.open(ramDir);
  numHighlights = 0;
}
项目:NYBC    文件:ReadTokensTask.java   
@Override
public int doLogic() throws Exception {
  List<IndexableField> fields = doc.getFields();
  Analyzer analyzer = getRunData().getAnalyzer();
  int tokenCount = 0;
  for(final IndexableField field : fields) {
    if (!field.fieldType().tokenized() ||
        field instanceof IntField ||
        field instanceof LongField ||
        field instanceof FloatField ||
        field instanceof DoubleField) {
      continue;
    }

    final TokenStream stream = field.tokenStream(analyzer);
    // reset the TokenStream to the first token
    stream.reset();

    TermToBytesRefAttribute termAtt = stream.getAttribute(TermToBytesRefAttribute.class);
    while(stream.incrementToken()) {
      termAtt.fillBytesRef();
      tokenCount++;
    }
  }
  totalTokenCount += tokenCount;
  return tokenCount;
}
项目:NYBC    文件:SpatialExample.java   
private Document newSampleDocument(int id, Shape... shapes) {
  Document doc = new Document();
  doc.add(new IntField("id", id, Field.Store.YES));
  //Potentially more than one shape in this field is supported by some
  // strategies; see the javadocs of the SpatialStrategy impl to see.
  for (Shape shape : shapes) {
    for (IndexableField f : strategy.createIndexableFields(shape)) {
      doc.add(f);
    }
    //store it too; the format is up to you
    doc.add(new StoredField(strategy.getFieldName(), ctx.toString(shape)));
  }

  return doc;
}
项目:NYBC    文件:TestParser.java   
@BeforeClass
public static void beforeClass() throws Exception {
  // TODO: rewrite test (this needs to set QueryParser.enablePositionIncrements, too, for work with CURRENT):
  Analyzer analyzer = new MockAnalyzer(random(), MockTokenizer.WHITESPACE, true, MockTokenFilter.ENGLISH_STOPSET, false);
  //initialize the parser
  builder = new CorePlusExtensionsParser("contents", analyzer);

  BufferedReader d = new BufferedReader(new InputStreamReader(
      TestParser.class.getResourceAsStream("reuters21578.txt"), "US-ASCII"));
  dir = newDirectory();
  IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(Version.LUCENE_40, analyzer));
  String line = d.readLine();
  while (line != null) {
    int endOfDate = line.indexOf('\t');
    String date = line.substring(0, endOfDate).trim();
    String content = line.substring(endOfDate).trim();
    Document doc = new Document();
    doc.add(newTextField("date", date, Field.Store.YES));
    doc.add(newTextField("contents", content, Field.Store.YES));
    doc.add(new IntField("date2", Integer.valueOf(date), Field.Store.NO));
    writer.addDocument(doc);
    line = d.readLine();
  }
  d.close();
  writer.close();
  reader = DirectoryReader.open(dir);
  searcher = newSearcher(reader);

}
项目:NYBC    文件:TestCompressingStoredFieldsFormat.java   
@Test(expected=IllegalArgumentException.class)
public void testDeletePartiallyWrittenFilesIfAbort() throws IOException {
  // disable CFS because this test checks file names
  iwConf.setMergePolicy(newLogMergePolicy(false));
  iw.close();
  iw = new RandomIndexWriter(random(), dir, iwConf);

  final Document validDoc = new Document();
  validDoc.add(new IntField("id", 0, Store.YES));
  iw.addDocument(validDoc);
  iw.commit();

  // make sure that #writeField will fail to trigger an abort
  final Document invalidDoc = new Document();
  FieldType fieldType = new FieldType();
  fieldType.setStored(true);
  invalidDoc.add(new Field("invalid", fieldType) {

    @Override
    public String stringValue() {
      return null;
    }

  });

  try {
    iw.addDocument(invalidDoc);
    iw.commit();
  }
  finally {
    int counter = 0;
    for (String fileName : dir.listAll()) {
      if (fileName.endsWith(".fdt") || fileName.endsWith(".fdx")) {
        counter++;
      }
    }
    // Only one .fdt and one .fdx files must have been found
    assertEquals(2, counter);
  }
}
项目:NYBC    文件:TestMultiValuedNumericRangeQuery.java   
/** Tests NumericRangeQuery on a multi-valued field (multiple numeric values per document).
 * This test ensures, that a classical TermRangeQuery returns exactly the same document numbers as
 * NumericRangeQuery (see SOLR-1322 for discussion) and the multiple precision terms per numeric value
 * do not interfere with multiple numeric values.
 */
public void testMultiValuedNRQ() throws Exception {
  Directory directory = newDirectory();
  RandomIndexWriter writer = new RandomIndexWriter(random(), directory,
      newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random()))
      .setMaxBufferedDocs(_TestUtil.nextInt(random(), 50, 1000)));

  DecimalFormat format = new DecimalFormat("00000000000", new DecimalFormatSymbols(Locale.ROOT));

  int num = atLeast(500);
  for (int l = 0; l < num; l++) {
    Document doc = new Document();
    for (int m=0, c=random().nextInt(10); m<=c; m++) {
      int value = random().nextInt(Integer.MAX_VALUE);
      doc.add(newStringField("asc", format.format(value), Field.Store.NO));
      doc.add(new IntField("trie", value, Field.Store.NO));
    }
    writer.addDocument(doc);
  }
  IndexReader reader = writer.getReader();
  writer.close();

  IndexSearcher searcher=newSearcher(reader);
  num = atLeast(50);
  for (int i = 0; i < num; i++) {
    int lower=random().nextInt(Integer.MAX_VALUE);
    int upper=random().nextInt(Integer.MAX_VALUE);
    if (lower>upper) {
      int a=lower; lower=upper; upper=a;
    }
    TermRangeQuery cq=TermRangeQuery.newStringRange("asc", format.format(lower), format.format(upper), true, true);
    NumericRangeQuery<Integer> tq=NumericRangeQuery.newIntRange("trie", lower, upper, true, true);
    TopDocs trTopDocs = searcher.search(cq, 1);
    TopDocs nrTopDocs = searcher.search(tq, 1);
    assertEquals("Returned count for NumericRangeQuery and TermRangeQuery must be equal", trTopDocs.totalHits, nrTopDocs.totalHits );
  }
  reader.close();
  directory.close();
}