/** * @param features * @param gDB * @param baseName * @param gSerializer * @return * @throws CorruptIndexException * @throws LockObtainFailedException * @throws IOException * @throws ParseException */ public SubSearch_LindexSimple buildIndex( NoPostingFeatures_Ext<IOneFeature> features, IGraphDatabase gDB, String baseName, GraphParser gSerializer) throws CorruptIndexException, LockObtainFailedException, IOException, ParseException { // 0 step: features are all selected // 1st step: build the searcher long start = System.currentTimeMillis(); features.mineSubSuperRelation(); long time1 = System.currentTimeMillis(); System.out.println("1. Mine super-sub graph relationships: " + (time1 - start)); LindexSearcher in_memoryIndex = LindexConstructor.construct(features); long time2 = System.currentTimeMillis(); System.out.println("2. Building Lindex: " + (time2 - time1)); LindexConstructor.saveSearcher(in_memoryIndex, baseName, SubSearch_Lindex.getIndexName()); // 2nd step: build the postings for the in_memoryIndex time2 = System.currentTimeMillis(); PostingBuilderLucene builder = new PostingBuilderLucene( new PostingBuilderLuceneVectorizerNormal(gSerializer, in_memoryIndex)); builder.buildLuceneIndex( baseName + SubSearch_Lindex.getLuceneName(), in_memoryIndex.getFeatureCount(), gDB, null); long time3 = System.currentTimeMillis(); System.out.println("3. Buildling Lucene for Lindex: " + (time3 - time2)); // 3rd step: return PostingFetcherLucene posting = new PostingFetcherLucene( baseName + SubSearch_Lindex.getLuceneName(), gDB.getTotalNum(), gSerializer, false); return new SubSearch_LindexSimple(in_memoryIndex, posting, new VerifierISO()); }
public SubSearch_LindexSimple loadIndex( IGraphDatabase gDB, String baseName, GraphParser gParser, boolean lucene_in_mem) throws IOException { LindexSearcher in_memoryIndex = LindexConstructor.loadSearcher(baseName, SubSearch_Lindex.getIndexName()); PostingFetcherLucene posting = new PostingFetcherLucene( baseName + SubSearch_Lindex.getLuceneName(), gDB.getTotalNum(), gParser, lucene_in_mem); return new SubSearch_LindexSimple(in_memoryIndex, posting, new VerifierISO()); }
public static void statistics(IGraphDatabase gDB) { int[] stat = new int[100]; Arrays.fill(stat, 0); for (int i = 0; i < gDB.getTotalNum(); i++) { int edgeCount = gDB.findGraph(i).getEdgeCount(); if (edgeCount > 99) ++stat[99]; else ++stat[edgeCount]; } for (int i = 0; i < 100; i++) { System.out.println("edge" + i + " : " + stat[i]); } }