欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

lucene实现精确查询本地文件中的ID

程序员文章站 2022-07-09 10:25:53
...

1、工具lucene
2、实现步骤
1)准备格式化的本地文件,方便拆出ID字段
2)初始化索引
读取本地文件
把ID字段拆出来,当做term
逐行写入document
执行初始化
实例:373MB的文件,初始化耗时约90-100s
关键实现代码片段:

			FieldType fieldType = new FieldType();
            fieldType.setIndexOptions(IndexOptions.DOCS);//设置索引选项-索引文档
            fieldType.setStored(true);//设置是否存储
            fieldType.setTokenized(false);//设置是否分词
            while ((str = bf.readLine()) != null) {
                Document doc = new Document();
                doc.add(new Field("objectId", str.split(",")[0], fieldType));
                //Field.Store.YES:把文件名存索引文件里,为NO就说明不需要加到索引文件里去
                doc.add(new TextField("fileName", f.getName(), Field.Store.YES));
                //把完整路径存在索引文件里
                doc.add(new TextField("fullPath", f.getCanonicalPath(), Field.Store.YES));
                arrayList.add(doc);
            }

3)使用TermQuery查询
实例:查询一个term耗时约<10ms,如果查不到耗时<1ms;

相关标签: lucene