• Lucene


     Lucene

    • 全文检索引擎工具包
    • 文档: Document
      • 包含了一个或多个域的容器;
        • field:value    

     域:

    • 域有很多选项  
    索引选项、存储选项、域向量使用选项;  
    • 索引选项用于通过倒排索引来控制文本是否可被搜索:  
    Index:ANYLYZED:分析(切词)并单独作为索引项;
    
    Index.Not_ANYLYZED:不分析(不切词),把整个内容当一个索引项;
    
    Index.ANYLYZED_NORMS:类似于Index:ANALYZED,但不存储token的Norms(加权基准)信息;
    
    Index.Not_ANYLYZED_NORMS:类似于Index:Not_ANALYZED,但不存储值的Norms(加权基准)信息;
    
    Index.NO: 不对此域的值进行索引;因此不能被搜索;  
    • 存储选项:是否需要存储域的真实值;  
    title:This is a Notebook.
    
    store.YES:存储真实值
    store.NO:不存储真实值  
    • 域向量选项用于在搜索期间该文档所有的唯一项都能完全从文档中检索时使用  
    • 文档和域的加权操作
      • 加权计算标准  

     搜索:

    • 查询Lucene索引时,它返回的是一个有序的scoreDoc对象;查询时,Lucene会为每个文档计算出其score  
    • API  
    IndexSearcher:搜索索引入口;
    Query及其子类:
    QueryParser
    TopDocs
    ScoreDoc  

     Lucene的多样化查询:

    • IndexSearcher中的search方法    
    TermQuery:对索引中的特定项进行搜索;Term是索引中的最小索引片段,每个Term包含了一个域名和一个文本值;
        title:This is a Desk.
        owner: Tom Blair
        description: this is a desk, it's belong to Tom.
    
        title: This is a table.
        owner: Clinton
        description: this is a desk, it's belong to Clinton.
            This: (1) (2)
            Desk: (1)
            table: (2)      
    
    
    TermRangeQuery:在索引中的多个特定项中进行搜索,能搜索指定的多个域;
    NumericRangeQuery:做数值范围搜索;
    PrefixQuery:用于搜索以指定字符串开头的项;
    BooleanQuery:用于实现组合查询;组合逻辑有: AND, OR, NOT;
    PhraseQuery:
    WildcardQuery:
    FuzzyQuery:模糊查询;Levenshtein
    
  • 相关阅读:
    关于typedef在struct使用上的一些问题
    软件工程--趣盒--第四次团队作业--软件实现与测试
    趣盒——快速入门手册
    软件工程趣盒软件设计
    软件工程项目需求分析
    在VS2017下配置OpenGL
    破阵子青铜团队介绍以及项目背景介绍
    海客谈瀛洲,烟涛微茫信难求——微信
    第一次作业:扑通扑通 我的IT
    5.线性回归算法
  • 原文地址:https://www.cnblogs.com/evescn/p/8400001.html
Copyright © 2020-2023  润新知