lucene的主要搜索API

本文介绍Lucene搜索引擎的工作原理,包括搜索操作的主要组件如IndexSearcher、Query及其子类等,以及Lucene如何使用不同的锁文件来确保索引的一致性和并发控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用途

IndexSeacher

搜索操作的入口,所有搜索操作都是通过IndexSeacher实例使用一个重载的search方法来实现

Query(及其子类)

具体的Query子类为每一种特定类型的查询进行逻辑上的封装。Query实例被传递到IndexSearcher的search方法中

QueryParser

将用户输入的(并且可读的)查询表达式处理为一个具体的Query对象

Hits

提供对搜索结果的访问。Hits对由IndexSearcher的search方法返回

lucene在查询索引时,会返回一个有序的Hits对象集合。lucene使用默认的评分方式对该集合内的对象按其得分高低进行排序。

 

锁文件

何时获取

何时释放

描述

Write.lock

IndexWriter

构造函数

Close()

在关闭IndexWriter对象时释放锁

Write.lock

IndexReader

Delete(int)

Close()

在关闭IndexReader对象时释放锁

Write.lock

IndexReader

Undelete(int)

Close()

在关闭IndexReader对象时释放锁

Write.lock

IndexReader

setNorms(int,String,byte)

Close()

在关闭IndexReader对象时释放锁

Commit.lock

IndexWriter

构造函数

构造函数

段信息被读取或写入后立即释放锁

Commit.lock

IndexWriter

addIndexs(IndexReader[])

addIndexes(IndexReader[])

写入新的段时获取锁文件

Commit.lock

IndexWriter

addIndexs(Directory[])

addIndexs(Directory[])

写入新的段时获取锁文件

Commit.lock

IndexWriter

mergeSegment(int)

mergerSegment(int)

写入新的段时获取锁文件

Commit.lock

IndexReader

Open(Directory)

Open(Directory)

所有段被读取后获取锁文件

Commit.lock

SegmentReader

doClose()

doClose()

段的文件被写入或重写后获取锁文件

Commit.lock

SegmentReader

undeleteAll()

undeleteAll()

移除.del文件后获取锁文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值