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;
上一篇: 浏览器缓存原理详解