zoukankan      html  css  js  c++  java
  • 学习Lucene笔记一:创建索引

    public class HelloLucene {
    
        /**
         * 建立索引
         * @param args
         */
        public void index(){
            IndexWriter  writer = null;  
    
            try {
                //1.创建Directory,
                // Directory directory = new RAMDirectory();//索引是建立在内存中的
                Directory directory =  FSDirectory.open(new File("D:/Lucene/index01"));//索引是建立在硬盘上
    
                //2.创建IndexWriter,用完之后要关闭,在finally关闭。
                IndexWriterConfig iwc = new IndexWriterConfig(Version.LUCENE_36,new StandardAnalyzer(Version.LUCENE_36));
                writer = new IndexWriter(directory,iwc);
                
                //3.创建Document对象
                Document document = null;
                File files = new File("D:/Lucene/example1");
                
                //4.为Document添加Field
                for(File file: files.listFiles()){
                    document =  new Document();
                    
                    //添加内容到索引
                    document.add(new Field("content",new FileReader(file)));
                    //添加文件名到索引
                    document.add(new Field("filename",file.getName(),Field.Store.YES,Field.Index.NOT_ANALYZED));
                    //添加路径到索引
                    document.add(new Field("path",file.getAbsolutePath(),Field.Store.YES,Field.Index.NOT_ANALYZED));
    
                    //5.通过IndexWriter添加文档到索引
                    writer.addDocument(document);
                }
            } catch (CorruptIndexException e) {
                e.printStackTrace();
            } catch (LockObtainFailedException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }finally{
                try {
                    if(writer != null) writer.close();
                } catch (CorruptIndexException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
    
    
    
        }
    }

     源码下载

  • 相关阅读:
    免费的编程中文书籍索引
    整理书签博客和文章
    【De8ug玩docker】-Docker常用命令操作
    Linux中的那些英文缩写和她的含义们
    Docker和DevOps是找工作必备技能
    【De8ug玩docker】-命令行只显示-bash-4.1#
    应该知道的Linux技巧
    阿里云服务器linux(centos)常用命令
    jQuery运维开发之第十七天
    js+dom开发第十六天
  • 原文地址:https://www.cnblogs.com/andgoo/p/2541693.html
Copyright © 2011-2022 走看看