美文网首页
Lucene(二)

Lucene(二)

作者: kelaody | 来源:发表于2019-07-18 17:33 被阅读0次

    一、索引库维护
    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。

    相关文章

      网友评论

          本文标题:Lucene(二)

          本文链接:https://www.haomeiwen.com/subject/zofrlctx.html