• 搜索引擎学习(二)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代码创建索引就算成功了~

  • 相关阅读:
    驱动Makefile
    ioremap
    file结构体
    Python基础-语法知识
    企业运营对 DevOps 的「傲慢与偏见」
    漂亮得不像实力派!
    如何用 OneAPM 优化你的 Node.js 应用?
    全球说:要给 OneAlert 点100个赞
    DevOps 和技术债务偿还自动化
    PHP 性能分析与实验(二)——PHP 性能的微观分析
  • 原文地址:https://www.cnblogs.com/riches/p/11444254.html
Copyright © 2020-2023  润新知