/** Write the document to the index and close it */
 public void finish() {
   try {
     indexWriter.commit();
     indexWriter.close();
   } catch (IOException ex) {
     System.err.println("We had a problem closing the index: " + ex.getMessage());
   }
 }
 public void addDocument(JSONObject object) {
   Document doc = new Document();
   String body = (String) object.get("body");
   String id = (String) object.get("id");
   long idLong = Long.valueOf(id, 36);
   //            System.out.println(body);
   doc.add(new TextField("body", body, Field.Store.YES));
   doc.add(new LongField("id", idLong, Field.Store.YES));
   //            doc.add(new StoredField("body_store",CompressionTools.compressString(body)));
   try {
     indexWriter.addDocument(doc);
   } catch (IOException ex) {
     System.err.println("Error adding documents to the index. " + ex.getMessage());
   } catch (Exception ex) {
     System.err.println("Error adding documents to the index. " + ex.getMessage());
   }
 }
  public JSONArray readJsonFile() {

    BufferedReader br = null;
    JSONParser parser = new JSONParser();
    JSONArray array = new JSONArray();
    try {

      String sCurrentLine;
      br = getBufferedReaderForCompressedFile(jsonFilePath);
      //            br = new BufferedReader(new FileReader(jsonFilePath));

      while ((sCurrentLine = br.readLine()) != null) {
        //                System.out.println("Record:\t" + sCurrentLine);

        Object obj;
        try {
          obj = parser.parse(sCurrentLine);
          JSONObject jsonObject = (JSONObject) obj;
          array.add(jsonObject);

        } catch (ParseException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
        }
      }

    } catch (IOException e) {
      e.printStackTrace();
    } catch (CompressorException ex) {
      ex.printStackTrace();
    } finally {
      try {
        if (br != null) br.close();
      } catch (IOException ex) {
        ex.printStackTrace();
      }
    }
    return array;
  }
 /**
  * Add documents to the index
  *
  * @param jsonObjects
  */
 public void addDocuments(JSONArray jsonObjects) {
   for (JSONObject object : (List<JSONObject>) jsonObjects) {
     Document doc = new Document();
     //            for(String field : (Set<String>) object.keySet()){
     //                if(object==null || object.get(field)==null)
     //                    continue;
     //                Class type = object.get(field).getClass();
     //                if(type==null)
     //                    continue;
     //                if(type.equals(String.class)){
     //                    doc.add(new StringField(field, (String)object.get(field),
     // Field.Store.NO));
     //                }else if(type.equals(Long.class)){
     //                    doc.add(new LongField(field, (long)object.get(field), Field.Store.YES));
     //                }else if(type.equals(Double.class)){
     //                    doc.add(new DoubleField(field, (double)object.get(field),
     // Field.Store.YES));
     //                }else if(type.equals(Boolean.class)){
     //                    doc.add(new StringField(field, object.get(field).toString(),
     // Field.Store.YES));
     //                }
     //            }
     String body = (String) object.get("body");
     String id = (String) object.get("id");
     long idLong = Long.valueOf(id, 36);
     //            System.out.println(body);
     doc.add(new TextField("body", body, Field.Store.YES));
     doc.add(new LongField("id", idLong, Field.Store.YES));
     try {
       indexWriter.addDocument(doc);
     } catch (IOException ex) {
       System.err.println("Error adding documents to the index. " + ex.getMessage());
     } catch (Exception ex) {
       System.err.println("Error adding documents to the index. " + ex.getMessage());
     }
   }
 }