示例#1
0
  public CObj getMyIdentity(String id) {
    BooleanQuery bq = new BooleanQuery();
    Term typterm = new Term(CObj.PARAM_TYPE, CObj.IDENTITY);
    bq.add(new TermQuery(typterm), BooleanClause.Occur.MUST);

    Term idterm = new Term(CObj.PARAM_ID, id);
    bq.add(new TermQuery(idterm), BooleanClause.Occur.MUST);

    Term mustterm = new Term(CObj.docPrivate(CObj.MINE), "true");
    bq.add(new TermQuery(mustterm), BooleanClause.Occur.MUST);

    CObj r = null;
    CObjList l = search(bq, 1);

    if (l.size() > 0) {
      try {
        r = l.get(0);
      } catch (Exception e) {
        e.printStackTrace();
      }
    }

    l.close();
    return r;
  }
示例#2
0
  public CObj getIdentHasFile(String comid, String uid, String wdig, String pdig) {
    BooleanQuery bq = new BooleanQuery();
    Term typterm = new Term(CObj.PARAM_TYPE, CObj.HASFILE);
    bq.add(new TermQuery(typterm), BooleanClause.Occur.MUST);

    Term comterm = new Term(CObj.docString(CObj.COMMUNITYID), comid);
    bq.add(new TermQuery(comterm), BooleanClause.Occur.MUST);

    Term wdigterm = new Term(CObj.docString(CObj.FILEDIGEST), wdig);
    bq.add(new TermQuery(wdigterm), BooleanClause.Occur.MUST);

    Term pdigterm = new Term(CObj.docString(CObj.FRAGDIGEST), pdig);
    bq.add(new TermQuery(pdigterm), BooleanClause.Occur.MUST);

    Term cidterm = new Term(CObj.docString(CObj.CREATOR), uid);
    bq.add(new TermQuery(cidterm), BooleanClause.Occur.MUST);

    Term shterm = new Term(CObj.docString(CObj.STILLHASFILE), "true");
    bq.add(new TermQuery(shterm), BooleanClause.Occur.MUST);

    CObj r = null;
    CObjList cl = search(bq, Integer.MAX_VALUE);

    if (cl.size() > 0) {
      try {
        r = cl.get(0);
      } catch (IOException e) {
        e.printStackTrace();
      }
    }

    cl.close();
    return r;
  }
示例#3
0
  public CObj getSubscriptionUnsub(String comid, String memid) {
    BooleanQuery bq = new BooleanQuery();
    Term typterm = new Term(CObj.PARAM_TYPE, CObj.SUBSCRIPTION);
    bq.add(new TermQuery(typterm), BooleanClause.Occur.MUST);

    Term cidterm = new Term(CObj.docString(CObj.COMMUNITYID), comid);
    bq.add(new TermQuery(cidterm), BooleanClause.Occur.MUST);

    Term midterm = new Term(CObj.docString(CObj.CREATOR), memid);
    bq.add(new TermQuery(midterm), BooleanClause.Occur.MUST);

    CObj r = null;
    CObjList l = search(bq, 1);

    if (l.size() > 0) {
      try {
        r = l.get(0);
      } catch (Exception e) {
        e.printStackTrace();
      }
    }

    l.close();
    return r;
  }
示例#4
0
  public CObj getFragment(String comid, String wdig, String ddig, String dig) {
    BooleanQuery bq = new BooleanQuery();
    Term typterm = new Term(CObj.PARAM_TYPE, CObj.FRAGMENT);
    bq.add(new TermQuery(typterm), BooleanClause.Occur.MUST);

    Term ct = new Term(CObj.docString(CObj.COMMUNITYID), comid);
    bq.add(new TermQuery(ct), BooleanClause.Occur.MUST);

    Term wdt = new Term(CObj.docString(CObj.FILEDIGEST), wdig);
    bq.add(new TermQuery(wdt), BooleanClause.Occur.MUST);

    Term tddt = new Term(CObj.docString(CObj.FRAGDIGEST), ddig);
    bq.add(new TermQuery(tddt), BooleanClause.Occur.MUST);

    Term ddt = new Term(CObj.docString(CObj.FRAGDIG), dig);
    bq.add(new TermQuery(ddt), BooleanClause.Occur.MUST);

    Term shf = new Term(CObj.docPrivate(CObj.COMPLETE), "true");
    bq.add(new TermQuery(shf), BooleanClause.Occur.MUST);

    CObj r = null;
    CObjList cl = search(bq, Integer.MAX_VALUE);

    if (cl.size() > 0) {
      try {
        r = cl.get(0);
      } catch (IOException e) {
        e.printStackTrace();
      }
    }

    cl.close();
    return r;
  }
示例#5
0
  public CObjList search(Query q, int max, Sort srt) {
    try {
      DirectoryReader reader = DirectoryReader.open(writer, true);
      IndexSearcher searcher = new IndexSearcher(reader);
      CObjList l = new CObjList(reader, searcher, q, srt);
      l.executeQuery(max);
      return l;
    } catch (Exception e) {
      e.printStackTrace();
    }

    return null;
  }
示例#6
0
  public CObjList search(Query bq, String qs, int max) {
    try {
      DirectoryReader reader = DirectoryReader.open(writer, true);
      IndexSearcher searcher = new IndexSearcher(reader);
      CObjList l = new CObjList(bq, reader, searcher, analyzer, qs, null);
      l.executeQuery(max);
      return l;
    } catch (Exception e) {
      e.printStackTrace();
    }

    return null;
  }
示例#7
0
  public static List<CObj> list(CObjList cl) {
    List<CObj> r = new LinkedList<CObj>();

    if (cl != null) {
      for (int c = 0; c < cl.size(); c++) {
        try {
          r.add(cl.get(c));
        } catch (IOException e) {
          e.printStackTrace();
        }
      }

      cl.close();
    }

    return r;
  }
示例#8
0
  public CObj getByDig(String dig) {
    BooleanQuery bq = new BooleanQuery();
    Term midterm = new Term(CObj.PARAM_DIG, dig);
    bq.add(new TermQuery(midterm), BooleanClause.Occur.MUST);

    CObj r = null;
    CObjList l = search(bq, 1);

    if (l.size() > 0) {
      try {
        r = l.get(0);
      } catch (Exception e) {
        e.printStackTrace();
      }
    }

    l.close();
    return r;
  }
示例#9
0
  private void indexNoCommit(CObj o, boolean onlynew) throws IOException {
    if (o.getDig() == null && o.getId() == null) {
      throw new IOException("Digest or id required!");
    }

    boolean indexit = true;
    Term updateterm = null;

    if (o.getId() != null) {
      updateterm = new Term("id", o.getId());
      Query id0 = new TermQuery(updateterm);

      if (onlynew) {
        CObjList cl = search(id0, 1);
        indexit = (cl.size() == 0);
        cl.close();
      }
    }

    if (o.getDig() != null && o.getId() == null) {
      updateterm = new Term("dig", o.getDig());
      Query id0 = new TermQuery(updateterm);

      if (onlynew) {
        CObjList cl = search(id0, 1);
        indexit = (cl.size() == 0);
        cl.close();
      }
    }

    if (indexit) {
      Document d = o.getDocument();
      writer.updateDocument(updateterm, d);
    }
  }
示例#10
0
  public CObj getCommunity(String comid) {
    BooleanQuery bq = new BooleanQuery();
    Term typterm = new Term(CObj.PARAM_TYPE, CObj.COMMUNITY);
    bq.add(new TermQuery(typterm), BooleanClause.Occur.MUST);

    Term idterm = new Term(CObj.PARAM_DIG, comid);
    bq.add(new TermQuery(idterm), BooleanClause.Occur.MUST);

    CObj r = null;
    CObjList l = search(bq, 1);

    if (l.size() > 0) {
      try {
        r = l.get(0);
      } catch (Exception e) {
        e.printStackTrace();
      }
    }

    l.close();
    return r;
  }
示例#11
0
  public CObj getFileInfo(String id) {
    BooleanQuery query = new BooleanQuery();

    Term pstterm = new Term(CObj.PARAM_TYPE, CObj.FILE);
    query.add(new TermQuery(pstterm), BooleanClause.Occur.MUST);

    Term idterm = new Term(CObj.PARAM_ID, id);
    query.add(new TermQuery(idterm), BooleanClause.Occur.MUST);

    CObj r = null;
    CObjList l = search(query, 1);

    if (l.size() > 0) {
      try {
        r = l.get(0);
      } catch (Exception e) {
        e.printStackTrace();
      }
    }

    l.close();
    return r;
  }