lucene使用的一些注意事项 | 学习笔记

简介: 快速学习lucene使用的一些注意事项。

开发者学堂课程【Lucene知识精讲与实战(下)lucene使用的一些注意事项】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/701/detail/12357


lucene使用的一些注意事项

 

1、关键词区分大小写

关于lucene在获取原始文档分词,组成索引过程中,分词信会把所有的大写字母变成小写字母组成索引,OR AND TO 关键词在 lucene 查询语法中存在,如果作为搜索内容,搜索内容会被lucene分词器转成小写字母,OR AND TO 等关键词是区分大小写的,lucene只认大写的,小写的当做普通单词。

2、读写互斥性

lucene 在创建修改删除索引时不影响读的效果,读和写分开,读的时候可以写,写的时候可以读,读的时候为了和写的时候互不影响,所以读写互斥,同一时刻只能有一个对索引的写操作,在写的同时可以进行搜索。

3、文件锁

为了防止同时有多个人操作同一块数据,对数据内容产生修改删除的操作,容易造成数据的混乱,一个线程操作数据时对索引里面的数据正常删改,lucene 会自动对文件进行加速,再有线程想进来修改文件或者添加数据或者删除数据是不可以的,只有当第一个线程做完增删改操作后,释放,第二个线程才能继续正常删改对数据库进行操作。lucene自带文件锁。在写索引的过程中强行退出将在tmp目录留下一个lock文件,使以后的写操作无法进行,可以将其手工删除。

4、时间格式

年月日时分秒,可以设置各种复杂的格式,但是 lucene 不认这些格式,lucene 只支持一种时间格式 yyMMddHHmmss , 所以你传一个 yy-MM-dd HH:mm:ss 的时间给lucene它是不会当作时间来处理的

5、设置boost

通过设置 boost ,查询某一个域时权重设置大一些会影响查询结果,这是关于相关度排序的内容,有些时候在搜索时某个字段的权重需要大一些, 例如你可能认为标题中出现关键词的文章比正文中出现关键词的文章更有价值,你可以把标题的boost 设置的更大,那么搜索结果会优先显示标题中出现关键词的文章。

6对于 lucene 主要是以原理为主,再学习 lucene 时主要学习底层原理,如何存数据,如何查,里面的算法,数据结果从而理解它为什么查询速度快,在企业中直接用 lucene 写代码应用在项目中比较小,因为在 lucene上有很多成熟的框架产品,比如es等技术,技术要用起来无论从写代码简易程度还是从代码的复杂度,从开发效率都是对 lucene 的封装,用起来都比 lucene 方便,所以企业中更愿意用 es lucene 下游产品,如果直接用 lucene 在某些大型企业平台架构部,在架构部中企业愿意封装自己的一些框架,关于全文检索,可能会用到 lucene lucene 底层原理为主,并非因为里面的 epi 方法,里面的方法代码具体的使用。

相关文章
|
7月前
|
Java 索引
04Lucene入门程序
04Lucene入门程序
29 0
|
9月前
|
存储 JSON 自然语言处理
|
10月前
|
存储 JSON 自然语言处理
三.全文检索ElasticSearch经典入门-索引CRUD&分词器&文档映射&文档CRUD
三.全文检索ElasticSearch经典入门-索引CRUD&分词器&文档映射&文档CRUD
|
存储 自然语言处理 搜索推荐
Elasticsearch 学习笔记(一)-----Lucene的简介以及索引原理
今天,正式开始学习Elasticsearch,因为Elasticsearch是用Lucene来实现索引的查询功能的,所以,理解Lucene的原理显的尤为重要。
364 0
Elasticsearch 学习笔记(一)-----Lucene的简介以及索引原理
|
存储 人工智能 自然语言处理
看Lucene源码必须知道的基本概念
下面的一些基本概念不但有助于看源码,在使用像solr这样的搜索引擎框架的时候还可以知道自己的配置都做了些什么事情。我在定义这些概念的时候也都有自己的理解和思考。
看Lucene源码必须知道的基本概念
|
存储 自然语言处理 分布式计算
看Lucene源码必须知道的基本规则和算法
 下面介绍一些Lucene使用基本规则和算法。这些规则和算法的选择,都和Lucene和支持TB级的倒排索引有关。
|
调度 索引 容器
ReaderPool(二)(Lucene 8.7.0)
ReaderPool(二)(Lucene 8.7.0)
128 0
|
存储 自然语言处理 搜索推荐
MemoryIndex(一)(Lucene 8.8.0)
MemoryIndex(一)(Lucene 8.8.0)
430 0
MemoryIndex(一)(Lucene 8.8.0)
|
存储 索引 容器
ReaderPool(一)(Lucene 8.7.0)
ReaderPool(一)(Lucene 8.7.0)
203 0
|
存储 自然语言处理 数据库
Lucene 查询原理
# 前言 Lucene 是一个基于 Java 的全文信息检索工具包,目前主流的搜索系统Elasticsearch和solr都是基于lucene的索引和搜索能力进行。想要理解搜索系统的实现原理,就需要深入lucene这一层,看看lucene是如何存储需要检索的数据,以及如何完成高效的数据检索。
8434 1