1、方法一,通过Term删除
Term构造中没有,Int类型需要转换成Lucene自带的类BytesRef 。
/**
* 根据商品ID删除索引文件
* @param id
*/
public void deleteDocument(int id)
{;
File file = new File("E://index");
IKAnalyzer analyzer = new IKAnalyzer();
IndexWriterConfig indexWriterConfig = new IndexWriterConfig(Version.LUCENE_44, analyzer);
IndexWriter indexWriter = null;
Directory directory;
try {
directory = FSDirectory.open(file);
// 创建 IndexWriter
indexWriter = new IndexWriter(directory, indexWriterConfig);
BytesRef bytes = new BytesRef(NumericUtils.BUF_SIZE_INT);
NumericUtils.intToPrefixCoded(id, 0, bytes);
Term term = new Term(field, bytes);
indexWriter.deleteDocuments(term);
indexWriter.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
2.方法二,使用NumericRangeQuery
/**
* 根据商品ID删除索引文件
* @param id
*/
public void deleteDocument(int id)
{;
File file = new File("E://index");
IKAnalyzer analyzer = new IKAnalyzer();
IndexWriterConfig indexWriterConfig = new IndexWriterConfig(Version.LUCENE_44, analyzer);
IndexWriter indexWriter = null;
Directory directory;
try {
directory = FSDirectory.open(file);
// 创建 IndexWriter
indexWriter = new IndexWriter(directory, indexWriterConfig);
Query numbericRangeQuery = NumericRangeQuery.newIntRange("ID",id-1, id+1, false, false);
indexWriter.deleteDocuments(numbericRangeQuery);
indexWriter.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
相关推荐
SolidWorks速成教程P1——简介及基础操作
SolidWorks教程P1——简介及基础操作
深入 Lucene 索引机制
Lucene 是一个基于 Java 的全文检索工具包,你可以利用它来为你的应用程序加入索引和检索功能。Lucene 目前是著名的 Apache Jakarta 家族中的一个开源项目,下面我们即将学习 Lucene 的索引机制以及它的索引文件的结构。在这篇文章中,我们首先演示如何使用 Lucene 来索引文档,接着讨论如何提高索引的性能。最后我们来分析 Lucene 的索引文件结构。需要记住
关于React Native Android找不到node的错误
最近,按照官方文档初始化了一个React Native项目,但是在Android端运行的时候,报了如下的一个错误。 org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:recordFilesBeforeBundleCommandDebug'. Caused by: org.gradle.process.internal.ExecException: A problem occurred starting p
Lucene中的各种Field字段
Lucene的Field说明Lucene存储对象是以document为存储单元,对象中相关的属性值则存放到Field中;lucene中所有Field都是IndexableField接口的实现[html] view plain copyorg.apache.lucene.index.IndexableField Represents a single field for indexing....
BytesRef源码阅读(Lucene8.0)
1.概述 在Lucene中,有很多地方都会用的基本类型数组,如ByteBlockPool中的二维数byte数组buffers,其中的每一个元素buffer(block)就是一个一维的byte[]。如果我们需要获得block中的某一区间(一般是连续的),则需要数组的拷贝,效率十分低,要在索引过程中需要频繁的读取。BytesRef的出现极大缓解这一问题,它内部可以持有某一个block的引用,通过off...
Lucene NumericRangeQuery的初步理解
理解NumericRangeQuery, 首先需要理解Lucene是如何存储数值类型. 文本初步探讨了Int和Float两种数值类型在Lucene中的存储实现,数值类型的分词原理, 最后给出NumericRangeQuery的简单理解.Lucene最初设计是实现全文检索功能, 即只处理字符串. 因此, 在处理数值时, Lucene也是将数值编码为字符串。将数值转换成字符串, Lucene-5.2...
Lucene 4.4 依据Int类型字段删除索引
1、方法一,通过Term删除 Term构造中没有。Int类型须要转换成Lucene自带的类BytesRef 。 /** * 依据商品ID删除索引文件 * @param id */ public void deleteDocument(int id) {; File file = new File("E://...
零基础入门CouchDB-Lucene:从设计文档到索引函数的实用指南 [特殊字符]
你是否正在寻找一个能够为CouchDB文档提供强大全文搜索能力的解决方案?CouchDB-Lucene正是你需要的工具!这个开源项目将Apache Lucene的强大全文搜索引擎与CouchDB的无缝集成完美结合,让你能够在CouchDB中实现高效、灵活的全文搜索功能。 ## 什么是CouchDB-Lucene? 🤔 CouchDB-Lucene是一个独立的Java应用程序,它为CouchD
lucene的数据类型
文章目录1. lucene的数据类型VInt详解ZInt 详解2. lucene的基本结构1. doc number2. 段(segment) 的信息3. 文件信息3. 文件详细信息1.segment_N ##总览 这里主要想要介绍一下lucene的存储层面的东西,lucene的设计本来就很精巧,所以想了解需要花一些心思的。 1.lucene的数据类型 2.lucene包含了哪些信息 3.拥有哪些文件 1. lucene的数据类型 Byte:是最基本的类型,长8位(bit)。 Int32:由4个Byte
lucene 索引文件简介
3Q: http://www.cnblogs.com/forfuture1978/archive/2009/12/14/1623597.html
lucene6.0+数值型字段排序与范围查询
在使用lucene进行建立索引搜索时,排序与范围查询常会使用到数值型字段,int、long、float等,lucene在6.0版本后很多老的api被删除,启用了很多新的处理api,对于数值型字段多了新的处理,原来lucene对于数值型字段还是相对较弱的。lucene主要是采用倒排索引的形式进行建立索引进行查询的,通过term到doc映射达到快速索引的目的,但是在排序、高亮、统计时这种方式也并不高效...
Lucene 2.4更新索引的方法(Update Index)
在Lucene里面没有update方法,我查了文档,我们只能删除以前的索引,然后增加新的索引。 具体步骤是,根据关键词,比如url这个唯一的东西,找到已经存在的索引项,然后删除它, 下面是我的一个根据网页URL删除索引的方法,里面主要使用了Item里面保存的一个docId的int类型的参数 这个数字是lucene内部每个索引的顺序号,类似于rowid @SuppressWarnings("unc...
Lucene.NET全文检索实战:从零构建高相关性中文搜索
全文检索是现代应用的核心数据能力,其本质基于倒排索引与TF-IDF相关性模型,解决用户‘输入即响应’的语义匹配需求。Lucene.NET作为.NET平台唯一经十年生产验证的轻量级检索内核,提供毫秒级查询、深度分词控制和零外部依赖部署能力,特别适合中小团队在CMS、知识库、内部系统中快速落地可控搜索。相比SQL模糊查询的性能坍塌与Elasticsearch的运维负担,Lucene.NET以本地索引+可定制Analyzer+字段权重机制,实现中文分词、布尔查询、范围筛选与高亮显示等Baidu式体验。本文聚焦.N
Lucene系列五:Lucene索引详解(IndexWriter详解、Document详解、索引更新)
一、IndexWriter详解 问题1:索引创建过程完成什么事? 分词、存储到反向索引中 1. 回顾Lucene架构图: 介绍我们编写的应用程序要完成数据的收集,再将数据以document的形式用lucene的索引API创建索引、存储。 这里重点要强调应用代码负责做什么,lucene负责做什么。 2. Lucene索引创建API 图示 通过该图介绍luce...
lucene NumericUtils
主要涉及几个类 NumericRangeQuery 数值型检索类,含(NumericRangeTermEnum)数值型词项迭代器 NumericUtils 索引和检索时,数值型运算类 NumericTokenStream 索引时解析数值型字段的类 NumericField 一、核心函数 1.1 数值转换
Lucene数据写入流程
Lucene的数据写入和倒排数据缓存组织是一个复杂但高效的过程。它涉及到多个内存结构的高效利用和多种优化技术的应用。通过深入理解这些结构和技术,我们可以更好地理解和优化Lucene的索引构建和查询过程。同时,这些知识和经验也可以为我们设计和实现自己的搜索引擎提供有益的参考和借鉴。
谈谈lucene中的BytesRefHash
2019独角兽企业重金招聘Python工程师标准>>> ...
Lucene 7.5.0 BytesRef
BytesRefHash类是专门为BytesRef对象作优化的一种类似hashMap的数据结构,该类的主要用途就是将所有的BytesRef对象存储到一个连续的存储空间中,并且使得能在查询阶段达到 0(1)的时间复杂度。 详情看这里:http://www.amazingkoala.com.cn/Lucene/2019/0218/32.html ...
Lucene的数字范围搜索 (Numeric Range Query)原理
0. 全文索引的核心就是倒排索引. 1. 若数字不支持范围查询, 直接变成字符串查找即可 2. 如果要支持范围查询, 直接的字符串存储支持么? 目前lucene要求term按照字典序(lexicographic sortable)排列,然后它的范围查询根据tii找到范围的起始Term,然后把这中间的所有的Term展开成一个B
lucene 范围查询及其原理
适用于lucene 6.0。 Int类型的有IntPoint,Double类型的有相应的DoublePoint,以此类推。 1.相关类 org.apache.lucene.document.IntPoint 一个被索引的int类型的field。可以代表n维形状,可以范围搜索。 org.apache.lucene.document.IntPoint.IntPoint(String name
基于Matlab的球墨铸铁金相图像处理分析.docx
。。。
Python数据分析之金融欺诈行为检测项目源码+数据集+可视化
Python数据分析之金融欺诈行为检测项目源码+数据集+可视化数据集描述该数据集取自某移动支付公司单月的转账日志。对于一条转账记录,预测其是否为欺诈行为。数据列描述:step: 对应现实中的时间单位(小时)type: 转账类型amount: 转账金额nameOrig: 转账发起人oldbalanceOrg: 转账前发起人账户余额newbalanceOrig: 转账后发起人账户余额nameDest: 转账收款人oldbalanceDest: 转账前收款人账户余额。注意,收款人是商户时(M打头的收款人),没有该信息。newbalanceDest: 转账后收款人账户余额。注意,收款人是商户时(M打头的收款人),没有该信息。isFraud: 该转账行为是欺诈行为。这里的欺诈行为是指通过掌控客户账户,然后将其金额全部转账到另一个账户,最后全部提现。isFlaggedFraud: 商业模型为了控制大额转账并且标记为非法操作。在这里,非法操作是指单笔转账中,转账金额超过200,000
2万+




被折叠的 条评论
为什么被折叠?



