zoukankan      html  css  js  c++  java
  • Lucene.NET中Field.Index 和 Field.Store的几种属性的用法

    lucene在doc.add(new Field("content",curArt.getContent(),Field.Store.NO,Field.Index.TOKENIZED)); 
    Field有两个属性可选:存储和索引。 

    通过存储属性你可以控制是否对这个Field进行存储; 

    通过索引属性你可以控制是否对该Field进行索引。 

    事实上对这两个属性的正确组合很重要。 
    Field.Index Field.Store 说明 
    TOKENIZED(分词) YES 被分词索引且存储 
    TOKENIZED NO 被分词索引但不存储 
    NO YES 这是不能被搜索的,它只是被搜索内容的附属物。如URL等 
    UN_TOKENIZED YES/NO 不被分词,它作为一个整体被搜索,搜一部分是搜不出来的 
    NO NO 没有这种用法 


    我们那文章表为例.articleinfo.有ID,title(标题),sumary(摘要),content(内容),userName(用户名) 

    其中title(标题),sumary(摘要)属于第一种情况,既要索引也要分词,也要存储. 

    content(内容)要分词,索引,但不存储.由于他太大了,而且界面也不用显示整个内容. 

    ID要存储,不用索引.因为没人用他来查询.但拼URL却很需要他.索引要存储. 

    userName(用户名)索引,但不分词.可用保存.为什么不分词?比如"成吉思汗",我不想被"成汉"搜索到.我希望要么"成吉思汗"或者"*吉思*"通配符搜到. 

    总结如下: 

    1.如果要对某Field进行查找,那么一定要把Field.Index设置为TOKENIZED或UN_TOKENIZED。TOKENIZED会对Field的内容进行分词;而UN_TOKENIZED不会,只有全词匹配,该Field才会被选中。 
    2.如果Field.Store是No,那么就无法在搜索结果中从索引数据直接提取该域的值,会使null。 

    补充: 

           Field.Store.YES:存储字段值(未分词前的字段值) 
           Field.Store.NO:不存储,存储与索引没有关系 
           Field.Store.COMPRESS:压缩存储,用于长文本或二进制,但性能受损 

           Field.Index.ANALYZED:分词建索引 
           Field.Index.ANALYZED_NO_NORMS:分词建索引,但是Field的值不像通常那样被保存,而是只取一个byte,这样节约存储空间 
           Field.Index.NOT_ANALYZED:不分词且索引 
           Field.Index.NOT_ANALYZED_NO_NORMS:不分词建索引,Field的值去一个byte保存 

           TermVector表示文档的条目(由一个Document和Field定位)和它们在当前文档中所出现的次数 
           Field.TermVector.YES:为每个文档(Document)存储该字段的TermVector 
           Field.TermVector.NO:不存储TermVector 
           Field.TermVector.WITH_POSITIONS:存储位置 
           Field.TermVector.WITH_OFFSETS:存储偏移量 
           Field.TermVector.WITH_POSITIONS_OFFSETS:存储位置和偏移量
  • 相关阅读:
    每天一道LeetCode--141.Linked List Cycle(链表环问题)
    每天一道LeetCode--119.Pascal's Triangle II(杨辉三角)
    每天一道LeetCode--118. Pascal's Triangle(杨辉三角)
    CF1277D Let's Play the Words?
    CF1281B Azamon Web Services
    CF1197D Yet Another Subarray Problem
    CF1237D Balanced Playlist
    CF1239A Ivan the Fool and the Probability Theory
    CF1223D Sequence Sorting
    CF1228D Complete Tripartite
  • 原文地址:https://www.cnblogs.com/yja9010/p/3178792.html
Copyright © 2011-2022 走看看