Lucene(二)

一、索引库维护
1、添加索引
代码实现:
调用 indexWriter.addDocument(doc)添加索引。
2、删除索引
调用 indexWriter.deleteDocuments(doc)删除索引。
3、清空索引库
调用 indexWriter.deleteAll()清空索引库。
4、更新索引
调用 indexWriter.updateDocument(doc)更新索引。

二、 搜索

1、使用Lucene提供Query子类查询
Query是一个抽象类,lucene提供了很多查询对象,比如TermQuery项精确查询,NumericRangeQuery数字范围查询等。

(1)使用TermQuery实例化
(2)使用QueryParse解析查询表达式

2、常用的Query子类搜索

(1) TermQuery
查询的关键词不会再做分词处理,作为整体来搜索。
不会再对查询的关键词做分词处理。

(2)NumericRangeQuery
指定数字范围查询

(3) BooleanQuery
布尔查询,实现组合条件查询。

2、通过QueryParser搜索
特点:
对搜索的关键词,做分词处理。
(1)QueryParser:对单个域查询。
(2)MulitFieldQueryParse:对多个域查询。

三、 中文分词器
1、什么是中文分词器

学过英文的都知道,英文是以单词为单位的,单词与单词之间以空格或者逗号句号隔开。
而中文的语义比较特殊,很难像英文那样,一个汉字一个汉字来划分。
所以需要一个能自动识别中文语义的分词器。

2、Lucene自带的中文分词器

(1) StandardAnalyzer:

单字分词:就是按照中文一个字一个字地进行分词。如:“我爱中国”, 效果:“我”、“爱”、“中”、“国”。

(2)CJKAnalyzer

二分法分词:按两个字进行切分。如:“我是中国人”,效果:“我是”、“是中”、“中国”“国人”。

(3)使用中文分词器IKAnalyzer

IKAnalyzer继承Lucene的Analyzer抽象类,使用IKAnalyzer和Lucene自带的分析器方法一样,将Analyzer测试代码改为IKAnalyzer测试中文分词效果。

如果使用中文分词器ik-analyzer,就在索引和搜索程序中使用一致的分词器ik-analyzer。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 案例分析:什么时全文检索,如何实现全文检索   1.1 案例   实现一个文件的搜索功能,通过关键字搜索文件...
    东方舵手阅读 1,206评论 0 1
  • 1.1. 数据分类 结构化数据:指具有固定格式或有限长度的数据,如数据库,元数据等。非结构化数据:指不定长或无...
    Zephyr_07阅读 6,233评论 0 1
  • 1. Lucene 官网 1). 概述 Lucene是一款高性能的、可扩展的信息检索(IR)工具库。信息检索是指文...
    _凌浩雨阅读 965评论 0 1
  • 目录结构:1.全文检索 2.Lucene入门3.Lucene进阶 全文检索 一, 生活中的搜索:1.Win...
    CoderZS阅读 1,737评论 0 12
  • 傍晚,一切都静谧着的。天上的月,明亮着的。微微的春风,暖暖地拂过我的脸颊。行走在这湖边,湖水的静,这样的神秘。周围...
    陈啊哟阅读 494评论 0 1