zoukankan      html  css  js  c++  java
  • 搜索引擎学习(二)Lucene创建索引

    PS:需要用到的jar包:

    代码实现

    1、工程结构

     

    2、设置工程依赖的jar包

     

     

    3、代码实现

    /**
     * Lucene入门
     * 创建索引
     */
    public class CreateIndex {
    
        /**
         * 创建索引
         * 第一步:创建java工程,导入相关的jar包
         * 第二步:创建一个indexWriter(索引写入)对象
         * (1)指定索引库的存放位置Directory
         * (2)指定一个分析器,对文档内容进行分析
         * 第三步:创建document(文档)对象
         * 第四步:创建field(域)对象,将field添加到document对象中
         * 第五步:使用indexWriter对象将document对象写入索引库,此过程进行索引创建,并将索引和document对象写入索引库
         * 第六步:关闭indexWriter对象(关流)
         */
        @Test
        public void createIndex() throws Exception {
    
            /*第二步:创建一个indexWriter(索引写入)对象*/
            //设置索引库的位置(PS:若使用RAMDiretory则是使用内存当做索引库,但是一关机就凉凉...)
            Directory directory = FSDirectory.open(new File("E:\zhanghaoBF\luceneSolr\indexLibrary").toPath());
            //创建分词器对象(官方推荐标准分词器)
            Analyzer analyzer = new StandardAnalyzer();
            //设置使用的分词器
            IndexWriterConfig indexWriterConfig = new IndexWriterConfig(analyzer);
            //创建索引对象
            IndexWriter indexWriter = new IndexWriter(directory, indexWriterConfig);
    
    
            File f = new File("E:\zhanghaoBF\luceneSolr\indexField");
            File[] listFiles = f.listFiles();
            for (File file : listFiles) {
                /*第三步:创建document(文档)对象*/
                Document document = new Document();
    
    
                /*第四步:创建field(域)对象,将field添加到document对象中*/
                //文件名称
                String file_name = file.getName();
                Field fileNameField = new TextField("fileName", file_name, Field.Store.YES);
                //文件大小
                long file_size = FileUtils.sizeOf(file);
                Field fileSizeField = new StoredField("fileSize", file_size + "");
                //文件路径
                String file_path = file.getPath();
                Field filePathField = new StoredField("filePath", file_path + "");
                //文件内容
                String file_content = FileUtils.readFileToString(file);
                Field fileContentField = new TextField("fileContent", file_content, Field.Store.NO);//第三个参数是设置存不存在索引库里
    
                document.add(fileNameField);//文件名称
                document.add(fileSizeField);//文件大小
                document.add(filePathField);//文件路径
                document.add(fileContentField);//文件内容
    
    
                /*第五步:使用indexWriter对象将document对象写入索引库,此过程进行索引创建,并将索引和document对象写入索引库*/
                indexWriter.addDocument(document);
            }
    
    
            /*第六步:关闭indexWriter对象(关流)*/
            indexWriter.close();
        }
    }

    4、右键运行后,查看生成的索引文件

     

    5、使用luke查看索引

     

    完事  lucene代码创建索引就算成功了~

  • 相关阅读:
    用ASP+DLL实现WEB方式修改服务器时间
    参加了 湖南.NET俱乐部成立大会
    Asp.Net中文本换行
    一直在思考的问题
    GRIDVIEW排序 动态实现和静态实现
    在VS 2005中使用TREEVIEW控件
    GRIDVIEW 中当数据行数未满时,填充空白行
    为了自己的心身健康 合理安排生活 特做了张时间安排表
    在VS 2005后台代码中创建用户控件
    CSS IE7 IE6 Firefox多浏览器兼容(转&摘)
  • 原文地址:https://www.cnblogs.com/riches/p/11444254.html
Copyright © 2011-2022 走看看