Beispiel #1
0
 /**
  * ** Encodes the specified DBRecordKyes into XML and writes it to ** a specified PrintStream
  * ** @param out The PrintStream ** @param dbrk The list of DBRecordKeys
  */
 public static void printXML(PrintStream out, DBRecordKey... dbrk) {
   if (out != null) {
     DBRecordKey.printXML(new PrintWriter(out), dbrk);
     out.flush();
   }
 }
  public static void main(String argv[]) {
    try {
      BufferedReader buf1 = new BufferedReader(new FileReader("./index/pIndex"));
      FileOutputStream out = new FileOutputStream("finalindex");
      PrintStream p = new PrintStream(out);
      String nline1, nline2, term1, term2, term3, term, t1, t2;
      StringBuffer sbuff = new StringBuffer();
      StringBuffer sbuff1;
      long df, postings = 0, line = 0;
      String[] id;
      int flag = 0;
      while (true) {
        nline1 = buf1.readLine();
        // System.out.println(nline1);
        if (nline1 == null) break;
        line++;
        String[] words = nline1.split(" ");
        String search_word = words[0];
        char ch = search_word.charAt(0);
        // System.out.println("c"+ch);
        id = words[1].split(",");
        df = id.length;
        flag = 0;
        sbuff1 = new StringBuffer(); // System.out.println(df);
        if (df > 30000 && ((ch == 't') || ch == 'o' || ch == 'c')) {
          int count = 0;
          postings = 0;
          System.out.println("before df" + df + ";line" + line); // System.out.println("here\n");
          while (count < df) {
            String temp1 = id[count];
            String temp[] = temp1.split(":");
            int t = Integer.parseInt(temp[1]);
            // System.out.println("t:"+t);
            if (t != 1) {
              if (flag == 0) {
                // System.out.println("here\n");
                sbuff1.append(search_word);
                sbuff1.append(" ");
                sbuff1.append(temp1);
                flag = 1;
              } else {
                sbuff1.append(",");
                sbuff1.append(temp1);
                postings++;
              }
            }
            count++;
          }
          // System.out.println(sbuff1);
          System.out.println("postings size after:" + postings + ";line" + line);
          p.println(sbuff1.toString());
          p.flush();
        } else {

          p.println(nline1);
          p.flush();
        }
      }

    } catch (IOException E) {
    }
  }