【已解决】lucene实现精确查询本地文件中的ID

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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值