Example usage for org.apache.lucene.store RAMDirectory RAMDirectory

List of usage examples for org.apache.lucene.store RAMDirectory RAMDirectory

Introduction

In this page you can find the example usage for org.apache.lucene.store RAMDirectory RAMDirectory.

Prototype

public RAMDirectory() 

Source Link

Document

Constructs an empty Directory .

Usage

From source file:net.sf.lucis.core.impl.RAMStore.java

License:Apache License

public RAMStore() {
    this.directory = new RAMDirectory();
    this.checkpoint = null;
}

From source file:net.sf.lucis.core.impl.RecreateTest.java

License:Apache License

@Test
public void ram() throws Exception {
    doTest(new RAMDirectory());
}

From source file:net.sf.okapi.lib.tmdb.h2.IndexAccess.java

License:Open Source License

public IndexAccess(Repository store) {
    try {//ww  w .  j  a v  a 2 s  . c o  m
        this.store = store;
        Directory idxDir = null;
        // Get the location from the repository instance
        String dir = store.getDirectory();
        inMemory = (dir == null);
        if (inMemory) {
            idxDir = new RAMDirectory();
        } else { // Create the directory if needed
            File file = new File(dir);
            if (!file.exists()) {
                file.mkdirs();
            }
            idxDir = FSDirectory.open(file);
        }

        writer = new Writer(idxDir, false);
        seeker = new Seeker(writer.getIndexWriter());
    } catch (IOException e) {
        throw new RuntimeException("Error creating the index access object:\n" + e.getMessage(), e);
    }
}

From source file:net.sf.okapi.lib.tmdb.lucene.SeekerTest.java

License:Open Source License

@Before
public void setUp() throws IOException {
    DIR = new RAMDirectory();
    writer = new Writer(DIR, true);
    seeker = new Seeker(writer.getIndexWriter());
}

From source file:net.sf.okapi.lib.tmdb.lucene.WriterTest.java

License:Open Source License

@Before
public void init() throws IOException {
    dir = new RAMDirectory();
    tmWriter = new Writer(dir, true);
    writer = tmWriter.getIndexWriter();/*from w w  w .j  a v a 2  s  . c o m*/
}

From source file:net.skyatlas.icd.dao.daoImpl.AnsjAnalysisTest.java

@Test
public void indexTest() throws CorruptIndexException, LockObtainFailedException, IOException {
    HashSet<String> hs = new HashSet<String>();
    //        BufferedReader reader2 = IOUtil.getReader(ResourceBundle.getBundle("library").getString("stopLibrary"), "UTF-8");
    //        String word = null;
    //        while ((word = reader2.readLine()) != null) {
    //            hs.add(word);
    //        }/*  www .j  a v a 2  s  .  c o  m*/
    Analyzer analyzer = new AnsjAnalysis(hs, false);
    Directory directory = null;
    IndexWriter iwriter = null;

    //        BufferedReader reader = IOUtil.getReader("/Users/ansj/Desktop/??/indextest.txt", "UTF-8");
    //        String temp = null;
    //        StringBuilder sb = new StringBuilder();
    //        while ((temp = reader.readLine()) != null) {
    //            sb.append(temp);
    //            sb.append("\n");
    //        }
    //        reader.close();
    String text = "????????????  ??? ????????";

    IndexWriterConfig ic = new IndexWriterConfig(Version.LUCENE_32, analyzer);
    // 
    directory = new RAMDirectory();
    iwriter = new IndexWriter(directory, ic);
    // BufferedReader reader =
    // IOUtil.getReader("/Users/ansj/Documents//?//1998?_.txt",
    // "GBK");
    // String temp = null;
    // while ((temp = reader.readLine()) != null) {
    // addContent(iwriter, temp);
    // }
    addContent(iwriter, text);
    addContent(iwriter, text);
    addContent(iwriter, text);
    addContent(iwriter, text);
    iwriter.commit();
    iwriter.close();

    System.out.println("");

    //        search(analyzer, directory, "");
}

From source file:net.skyatlas.icd.test.AnsegTest.java

static public void main(String[] args)
        throws IOException, CorruptIndexException, ParseException, InvalidTokenOffsetsException {
    AnsegTest inst = new AnsegTest();
    Token nt = new Token();
    Analyzer ca = new AnsjAnalysis();
    Reader sentence = new StringReader(
            "\n\n\n\n\n\n\n????, ????????????????????????????"
                    + "???????????????????"
                    + "??????????? ??????????????2????"
                    + ""
                    + "? ?????????????  ??? ????????");
    TokenStream ts = ca.tokenStream("sentence", sentence);

    System.out.println("start: " + (new Date()));
    long before = System.currentTimeMillis();
    while (ts.incrementToken()) {
        System.out.println(ts.getAttribute(CharTermAttribute.class));
    }/*from   ww w.j  av  a2 s  . c o  m*/
    ts.close();
    long now = System.currentTimeMillis();
    System.out.println("time: " + (now - before) / 1000.0 + " s");

    HashSet<String> hs = new HashSet<String>();
    BufferedReader reader2 = IOUtil.getReader(ResourceBundle.getBundle("library").getString("stopLibrary"),
            "UTF-8");
    String word = null;
    while ((word = reader2.readLine()) != null) {
        hs.add(word);
    }
    Analyzer analyzer = new AnsjAnalysis(hs, false);
    Directory directory = null;
    IndexWriter iwriter = null;

    BufferedReader reader = IOUtil.getReader("/Users/changzhenghe/Downloads/hy_statspack01.txt", "UTF-8");
    String temp = null;
    StringBuilder sb = new StringBuilder();
    while ((temp = reader.readLine()) != null) {
        sb.append(temp);
        sb.append("\n");
    }
    reader.close();
    String text = sb.toString();

    text = "????????????  ??? ????????";

    IndexWriterConfig ic = new IndexWriterConfig(Version.LUCENE_32, analyzer);
    // 
    directory = new RAMDirectory();
    iwriter = new IndexWriter(directory, ic);
    // BufferedReader reader =
    // IOUtil.getReader("/Users/ansj/Documents//?//1998?_.txt",
    // "GBK");
    // String temp = null;
    // while ((temp = reader.readLine()) != null) {
    // addContent(iwriter, temp);
    // }
    inst.addContent(iwriter, "?   ?()   (?)");
    inst.addContent(iwriter, "   ?()   (?)");
    inst.addContent(iwriter, "?   ?   (?)");
    inst.addContent(iwriter, "   ??NEC   ");
    inst.addContent(iwriter, "?");
    iwriter.commit();
    iwriter.close();

    System.out.println("");

    inst.search(analyzer, directory, "");
    inst.search(analyzer, directory, "");
    inst.search(analyzer, directory, "");
    inst.search(analyzer, directory, "?");

    /*
     KeyWordComputer kwc = new KeyWordComputer(5);
     String title = "??";
     String content = "9??"
     + "?????????"
     + "????"
     + "??"
     + "?????"
     + "???"
     + "??????"
     + "???"
     + "????20??"
     + "????"
     + "?"
     + "???]??"
     + "???";
     Collection<Keyword> result = kwc.computeArticleTfidf(title, content);
     System.out.println(result);
            
     AnsegTest t = new AnsegTest();
     List<Term> parse = ToAnalysis.parse("?");
     System.out.println(parse);
     System.out.println("*********** ? ************");
     //        UserDefineLibrary.insertWord("", "userDefine", 1000);
     //        UserDefineLibrary.insertWord("?", "userDefine", 1000);
     UserDefineLibrary.insertWord("?", "userDefine", 1000);
     parse = ToAnalysis.parse("???");
     System.out.println(parse);
     */
}

From source file:net.skyatlas.icd.test.RAMDirectoryDemo.java

public static void main(String[] args) throws IOException {
    long startTime = System.currentTimeMillis();
    System.err.println("***************************  ****************************");
    RAMDirectory directory = new RAMDirectory();

    Version matchVersion = Version.LUCENE_48;

    Analyzer analyzer = new StandardAnalyzer(matchVersion);
    IndexWriterConfig iwc = new IndexWriterConfig(Version.LUCENE_48, analyzer);
    iwc.setOpenMode(IndexWriterConfig.OpenMode.CREATE);
    IndexWriter writer = new IndexWriter(directory, iwc);

    Document doc = new Document();
    doc.add(new Field("name", "Chenghui", Field.Store.YES, Field.Index.ANALYZED));
    doc.add(new Field("sex", "", Field.Store.YES, Field.Index.NOT_ANALYZED));
    doc.add(new Field("dosometing", "I am learning lucene ", Field.Store.YES, Field.Index.ANALYZED));

    writer.addDocument(doc);//from www.j a  v a2 s.c  o  m
    writer.close();

    IndexReader reader = DirectoryReader.open(directory);
    IndexSearcher searcher = new IndexSearcher(reader);

    Query query = new TermQuery(new Term("dosometing", "lucene"));

    TopDocs rs = searcher.search(query, null, 10);
    long endTime = System.currentTimeMillis();
    System.out.println(
            "" + (endTime - startTime) + "" + rs.totalHits + "?");

    for (int i = 0; i < rs.scoreDocs.length; i++) {
        // rs.scoreDocs[i].doc ??id, 0  
        Document firstHit = searcher.doc(rs.scoreDocs[i].doc);
        System.out.println("name:" + firstHit.getField("name").stringValue());
        System.out.println("sex:" + firstHit.getField("sex").stringValue());
        System.out.println("dosomething:" + firstHit.getField("dosometing").stringValue());
    }
    reader.close();
    directory.close();
    System.out.println("*****************?**********************");
}

From source file:net.skyatlas.icd.util.MemoryGrid.java

public void init()
        throws IOException, CorruptIndexException, InvalidTokenOffsetsException, ParseException, SQLException {
    System.err.println("--------------\t\t Memory Grid Initializing -------------");
    this.allDiseases = this.dao.getAllDisease(); // Vol1 ?

    this.allIndexItems = this.dao.getAllDiseaseIndexes(); // Vol3 ?
    this.allIndexRelations = this.dao.getAllIcdDiseaseIdxRelations(); //Vol3 ?
    this.allDisRelations = this.icdDisRelationDao.getAllDiseaseRelation();//Vol1 ?
    // ?/*from  www  .  j a  va 2s.  c  o  m*/
    if (this.allRootIndexItems == null) {
        this.allRootIndexItems = new ArrayList();
    }
    System.err.println("All Index Items size:" + allIndexItems.size());
    System.err.println("All Disease Items size:" + allDiseases.size());
    //Vol1 Relation
    for (int i = 0; i < this.allDisRelations.size(); i++) {
        IcdDiseaseRelation r = this.allDisRelations.get(i);
        this.getVol1IDRelationIndexedItems().put(r.getId(), r);
        List<IcdDiseaseRelation> list = this.getVol1mainIDRelationIndexedItems().get(r.getMainID());
        if (list == null || list.size() == 0) {
            list = new ArrayList();
            list.add(r);
            this.getVol1mainIDRelationIndexedItems().put(r.getMainID(), list);
        } else {
            list.add(r);
        }
    }
    // Vol 1
    for (int i = 0; i < this.allDiseases.size(); i++) {
        IcdDisease d = this.allDiseases.get(i);

        //set Relations
        List<IcdDiseaseRelation> icdDisRelations = new ArrayList();
        icdDisRelations = this.getVol1mainIDRelationIndexedItems().get(d.getId());
        HashMap<String, List<IcdDiseaseRelation>> refRelations = new HashMap();
        List<IcdDiseaseRelation> noIncludeList = new ArrayList();//d.getRefRelations().get("?");
        List<IcdDiseaseRelation> otherCodeList = new ArrayList();//d.getRefRelations().get("??");
        List<IcdDiseaseRelation> swordList = new ArrayList();//d.getRefRelations().get("");
        List<IcdDiseaseRelation> includeList = new ArrayList();//d.getRefRelations().get("");
        if (icdDisRelations == null || icdDisRelations.size() == 0) {

        } else {
            for (int j = 0; j < icdDisRelations.size(); j++) {
                IcdDiseaseRelation idr = icdDisRelations.get(j);
                if (idr.getRelationType().equals("?")) {
                    noIncludeList.add(idr);
                } else if (idr.getRelationType().equals("??")) {
                    otherCodeList.add(idr);
                } else if (idr.getRelationType().equals("")) {
                    swordList.add(idr);
                } else if (idr.getRelationType().equals("")) {
                    includeList.add(idr);
                }
            }
            if (noIncludeList.size() > 0) {
                refRelations.put("?", noIncludeList);
            }
            if (otherCodeList.size() > 0) {
                refRelations.put("??", otherCodeList);
            }
            if (swordList.size() > 0) {
                refRelations.put("", swordList);
            }
            if (includeList.size() > 0) {
                refRelations.put("", includeList);
            }
        }
        d.setRefRelations(refRelations);

        // ID Unique Index
        this.getVol1IDIndexedItems().put(d.getId(), d);

        //            System.err.println(" ? IcdDisease, ICD Code :"+d.getIcdCode());
        // ICD Code 
        if (d.getIcdCode() != null && d.getIcdCode().length() > 0) { // ICD ??
            List<IcdDisease> alIndexes;
            if (this.getVol1IcdIndexedItems().containsKey(d.getIcdCode().toUpperCase())) {
                alIndexes = this.getVol1IcdIndexedItems().get(d.getIcdCode().toUpperCase());
            } else {
                alIndexes = new ArrayList();
            }
            //                System.err.println("Index Disease :"+d.getIcdCode());
            alIndexes.add(d);
            this.getVol1IcdIndexedItems().put(d.getIcdCode().replaceAll("$", "").toUpperCase(), alIndexes);
        }
        // Vol1 Name 
        List<IcdDisease> alIndexes2;
        if (this.getVol1NameIndexedItems().containsKey(d.getCodeNameCh())) {
            alIndexes2 = this.getVol1NameIndexedItems().get(d.getCodeNameCh());
        } else {
            alIndexes2 = new ArrayList();
        }
        alIndexes2.add(d);
        this.getVol1NameIndexedItems().put(d.getCodeNameCh(), alIndexes2);

        // Vol1  
        List<IcdDisease> alIndexes3;
        if (this.getVol1PinYinIndexedItems().containsKey(d.getPy())) {
            alIndexes3 = this.getVol1PinYinIndexedItems().get(d.getPy());
        } else {
            alIndexes3 = new ArrayList();
        }
        alIndexes3.add(d);
        this.getVol1PinYinIndexedItems().put(d.getPy(), alIndexes3);

    }

    /*
    Vol1parent-children 
    */
    for (int i = 0; i < this.allDiseases.size(); i++) {
        IcdDisease d = this.allDiseases.get(i);
        if (d.getParentID() != null && d.getParentID() != 0) {
            IcdDisease parent = this.getVol1IDIndexedItems().get(d.getParentID());
            d.setParentDisease(parent);
            if (parent == null) {
                System.err.println(" parent is null :" + d.getId() + "\t" + d.getParentID());
                continue;
            }
            if (parent.getChildren() == null) {
                parent.setChildren(new ArrayList());
            }
            parent.getChildren().add(d);
        }
    }

    // Vol 3
    for (int i = 0; i < this.allIndexItems.size(); i++) {
        IcdDiseaseIndex e = this.allIndexItems.get(i);
        this.getVol3IDIndexedItems().put(e.getId(), e); // ID  Unique

        // ??
        List<IcdDiseaseIndex> alIdxes;
        if (this.getVol3NameIndexedItems().containsKey(e.getNameCh())) {
            alIdxes = this.getVol3NameIndexedItems().get(e.getNameCh());
        } else {
            alIdxes = new ArrayList();
        }
        alIdxes.add(e);
        this.getVol3NameIndexedItems().put(e.getNameCh(), alIdxes);

        // 
        List<IcdDiseaseIndex> alIdxes2;
        if (this.getVol3PinYinIndexedItems().containsKey(e.getPy())) {
            alIdxes2 = this.getVol3PinYinIndexedItems().get(e.getPy());
        } else {
            alIdxes2 = new ArrayList();
        }
        alIdxes2.add(e);
        this.getVol3PinYinIndexedItems().put(e.getPy(), alIdxes2);

        // ?????
        if (this.dealAlias) {
            List<String> slist = new ArrayList();
            slist = dao.getAliasesByIndexid(e.getId());
            if (slist.size() != 0) {
                String[] aliases = new String[slist.size()];
                slist.toArray(aliases);
                e.setAliases(aliases);
            }
        }

        if (e.getDepth() == 0) { // Vol3 Item ?

            this.allRootIndexItems.add(e);
            //                Pattern p = Pattern.compile("[\\[]");
            //                Matcher m = p.matcher(e.getNameCh());
            //                while (m.find()) {
            //                    System.err.println("[]??:\t"+e.getNameCh()+"-> startIndex:"+m.start()+"-> endIndex:"+m.end()+" Match:"+m.group());
            //                }
            //                Pattern p2 = Pattern.compile("[]\\)");
            //                Matcher m2 = p2.matcher(e.getNameCh());
            //                while (m2.find()) {
            //                    System.err.println("(?)??:\t"+e.getNameCh()+"-> startIndex:"+m2.start()+"-> endIndex:"+m2.end()+" Match:"+m2.group());
            //                }

            //                p2 = Pattern.compile(pstr1);
            //                m2 = p2.matcher(e.getNameCh());
            //                while (m2.find()) {
            //                    System.err.println(" ()   [] "+m2.group()+"-->"+e.getNameCh()+"->"+m2.group(1));
            //                }
            //                
            //                p2 = Pattern.compile(pstr2);
            //                m2 = p2.matcher(e.getNameCh());
            //                while (m2.find()) {
            //                    System.err.println(" []   () "+m2.group()+"-->"+e.getNameCh());
            //                }
            //                
            //                
            //                p2 = Pattern.compile(pstr3);
            //                m2 = p2.matcher(e.getNameCh());
            //                while (m2.find()) {
            //                    System.err.println(" []  ? "+m2.group()+"-->"+e.getNameCh());
            //                }
            //                
            //                
            //                p2 = Pattern.compile(pstr4);
            //                m2 = p2.matcher(e.getNameCh());
            //                while (m2.find()) {
            //                    System.err.println(" ()  ? "+m2.group()+"-->"+e.getNameCh());
            //                }
            //                 ??
            /*
                 parseRootIndex(e);
                 e.getParseTreeRoot().setDepth(0);
                 System.out.println("? " + e.getNameCh() + " \n Parse Result :" + e.getParseTreeRoot().toString());
                         
                 */
        }
        // ???

    }
    //Vol3 parent-children
    for (int i = 0; i < this.allIndexItems.size(); i++) {
        IcdDiseaseIndex idi = this.allIndexItems.get(i);
        if (idi.getParentID() != null && idi.getParentID() != 0) {
            IcdDiseaseIndex parent = this.getVol3IDIndexedItems().get(idi.getParentID());
            idi.setParentDiseaseIndex(parent);
            if (parent == null) {
                System.err.println(" parent is null :" + idi.getId() + "\t" + idi.getParentID());
                continue;
            }
            if (parent.getChildren() == null) {
                parent.setChildren(new ArrayList());
            }
            parent.getChildren().add(idi);
        }
    }
    // ? Vol3
    for (IcdDiseaseIndex idi : this.allIndexItems) {
        // ICD ??
        if (idi.getIcdCode() != null && idi.getIcdCode().length() > 0) {
            Stack<IcdDiseaseIndex> v = new Stack();
            createIdexSearchPath(v, idi);

            // ?
            SearchPath path = new SearchPath();
            Iterator<IcdDiseaseIndex> itr = v.iterator();
            while (itr.hasNext()) {
                IcdDiseaseIndex i = itr.next();
                path.getNodeList().add(i);

                //  IcdDiseaseIndex Parse
                if (idi.getDepth() > 0) {
                    /*
                    parseRootIndex(idi);
                    */
                }
            }
            path.setNodes(path.getNodeList().size());
            path.setStartPoint(path.getNodeList().get(0));

            // Get Terminal ICD Disease
            /*
             M72.5   Vol1  ?
             D54     Vol1  ?
             W13     Vol1  
             */

            List<IcdDisease> ds = this.getVol1IcdIndexedItems()
                    .get(idi.getIcdCode().replaceAll("$", "").toUpperCase());
            if (ds == null) { // Maybe the icd code in Vol3 cannot be found in Vol1, Skip this item...
                ds = this.getVol1IcdIndexedItems().get(idi.getIcdCode().replaceAll("$", "")
                        .replaceAll("\\.$", "").replace(".-", "").toUpperCase());
                if (ds == null) {
                    System.err.println("ICD CODE:" + idi.getIcdCode() + " Indexed ?"
                            + this.getVol1IcdIndexedItems().containsKey(idi.getIcdCode().toUpperCase()) + "--"
                            + idi.getIcdCode().replaceAll("$", "").replaceAll("\\.$", "")
                                    .replace(".-", "").toUpperCase());
                    continue;
                }

            }
            for (IcdDisease dis : ds) {
                if (dis.getCodeType().equals("") || dis.getCodeType().equals("")) {
                    continue;
                }
                path.setTerminal(dis);
            }

            //  ???
            setDimension(path, path.getTerminal());

            // 
            this.getAllSearchPaths().add(path);

            this.getGuidIndexedSearchPaths().put(path.getPathHashCode(), path);

            // ??ICD Code
            List<SearchPath> al1 = this.getIcdIndexedSearchPaths()
                    .get(path.getTerminal().getIcdCode().toUpperCase());
            if (al1 == null) {
                al1 = new ArrayList<SearchPath>();
            }
            al1.add(path);
            this.getIcdIndexedSearchPaths().put(path.getTerminal().getIcdCode().toUpperCase(), al1);

            // ??(ICDDiseaseIndex)
            List<SearchPath> al2 = this.getRootIndexedSearchPaths().get(path.getStartPoint());
            //  SearchPath al2 = this.getRootIndexedSearchPaths().get(path.getStartPoint());
            if (al2 == null || al2.size() == 0) {
                //al2 = new SearchPath();
                al2 = new ArrayList();
            }
            al2.add(path);

            this.getRootIndexedSearchPaths().put(path.getStartPoint(), al2);

        }
    }
    /*2014-06-11 15:28:22
     *  Vol1parent-children 
            
    for(int i =0;i<this.allIndexItems.size();i++){
    IcdDiseaseIndex d = this.allIndexItems.get(i);
    if(d.getParentID()!=null&&d.getParentID()!=0){
        IcdDiseaseIndex parent = this.getVol3IDIndexedItems().get(d.getParentID());
        d.setParentDiseaseIndex(parent);
        if(parent == null){
            System.err.println(" parent is null :"+d.getId()+"\t"+d.getParentID());
            continue;
        }
        if(parent.getChildren() ==null){
            parent.setChildren(new ArrayList());
        }
        parent.getChildren().add(d);
    }
    } */
    // ? End!

    /*
    ?:
        1.   ICDDisease ? children   --> ?
        2.   ICDDisease ?Lucene      --> ?
        3.   search  ?
            
    */

    System.err.println("Search Path #:" + this.getAllSearchPaths().size());
    System.err.println("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
    //        for (SearchPath sp : this.getAllSearchPaths()) {
    //            System.err.println(sp);
    //        }
    System.err.println("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
    /*
    for (IcdDiseaseIndex idi : this.allRootIndexItems) {
    System.err.println("? :" + idi.getNameCh() + "->" + idi.getPage() + "-" + idi.getPathStr() + "-" + idi.getDepth());
    List<SearchPath> paths = this.getRootIndexedSearchPaths().get(idi);
    if (paths == null) {
        System.err.println("\t Search Path");
    } else {
        for (SearchPath sp : paths) {
        System.err.println("\t "+sp.getIndexString());
        }
    }
            
    }
    */

    System.err.println("******************* Begin create Idnex *********************");
    HashSet<String> hs = new HashSet<String>();
    BufferedReader reader2 = IOUtil.getReader(ResourceBundle.getBundle("library").getString("stopLibrary"),
            "UTF-8");
    String word = null;
    while ((word = reader2.readLine()) != null) {
        hs.add(word);
    }

    //  MemoryGrid  Lucene ??
    directory = new RAMDirectory();
    Version matchVersion = Version.LUCENE_48;
    analyzer = new AnsjAnalysis(hs, false);

    /*
    TokenStream ts = analyzer.tokenStream("", "?");
    //        CharTermAttribute term = ts.addAttribute(CharTermAttribute.class);
            
    System.err.println(" Test ?");
    while (ts.incrementToken()) {
    System.out.println("?" + ts.getAttribute(CharTermAttribute.class) + "");
    }
    ts.close();
    */

    IndexWriterConfig iwc = new IndexWriterConfig(Version.LUCENE_48, analyzer);
    iwc.setOpenMode(IndexWriterConfig.OpenMode.CREATE);
    IndexWriter writer = new IndexWriter(directory, iwc);

    // ?
    for (SearchPath path : this.getAllSearchPaths()) {
        //            System.err.println(" ? :"+path.getIndexString());
        addContent(writer, path.getIndexString(), path.getPathHashCode(), path.getNodes(), "vol3");

    }

    writer.commit();
    writer.close();

    System.err.println("***************** index created *******************");

    System.out.println("");

    //        search(analyzer,directory,"?");

    //DEBUG:   HIS?? ?ICD??

    /*
    try {
    OracleDataSource ods = new OracleDataSource();
    ods.setURL("jdbc:oracle:thin:@//192.168.1.115:1521/omac");
    ods.setUser("oracle");
    ods.setPassword("quickhis");
            
    Connection conn = ods.getConnection();
    String sql = "select main_icd,diag_name from fir_out_diag_tab where diag_date > (sysdate-1000) and rownum < 1000";
    Statement stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery(sql);
            
    while (rs.next()) {
        String mainIcd = rs.getString(1);
        String diagName = rs.getString(2);
        if (diagName==null || "".equals(diagName)) {
            continue;
        }
        diagName = diagName.replaceAll("", "(").replaceAll("", ")");
        System.err.println(" ICD_CODE:"+mainIcd+"\t >>"+diagName);
        search(analyzer,directory,diagName);
    }
            
    rs.close();
    stmt.close();
    conn.close();
    } catch (SQLException ex) {
    ex.printStackTrace();
    }
            
    */
}

From source file:net.sourceforge.docfetcher.model.search.HighlightService.java

License:Open Source License

@MutableCopy
@NotNull//from ww  w  .j  ava 2 s.  c  om
@SuppressWarnings("unchecked")
private static List<Range> highlightPhrases(@NotNull Query query, @NotNull String text)
        throws CheckedOutOfMemoryError {
    // FastVectorHighlighter only supports TermQuery, PhraseQuery and BooleanQuery
    FastVectorHighlighter highlighter = new FastVectorHighlighter(true, true, null, null);
    FieldQuery fieldQuery = highlighter.getFieldQuery(query);
    Directory directory = new RAMDirectory();
    try {
        /*
         * Hack: We have to put the given text in a RAM index, because the
         * fast-vector highlighter can only work on index readers
         */
        IndexWriterAdapter writer = new IndexWriterAdapter(directory);
        Document doc = new Document();
        doc.add(Fields.createContent(text, true)); // must store token positions and offsets
        writer.add(doc);
        Closeables.closeQuietly(writer); // flush unwritten documents into index
        IndexReader indexReader = IndexReader.open(directory);

        // This might throw an OutOfMemoryError
        FieldTermStack fieldTermStack = new FieldTermStack(indexReader, 0, Fields.CONTENT.key(), fieldQuery);

        FieldPhraseList fieldPhraseList = new FieldPhraseList(fieldTermStack, fieldQuery);

        // Hack: We'll use reflection to access a private field
        java.lang.reflect.Field field = fieldPhraseList.getClass().getDeclaredField("phraseList");
        field.setAccessible(true);
        LinkedList<WeightedPhraseInfo> infoList = (LinkedList<WeightedPhraseInfo>) field.get(fieldPhraseList);

        List<Range> ranges = new ArrayList<Range>(infoList.size());
        for (WeightedPhraseInfo phraseInfo : infoList) {
            int start = phraseInfo.getStartOffset();
            int end = phraseInfo.getEndOffset();
            ranges.add(new Range(start, end - start));
        }
        return ranges;
    } catch (OutOfMemoryError e) {
        throw new CheckedOutOfMemoryError(e);
    } catch (Exception e) {
        return new ArrayList<Range>(0);
    }
}