博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
lucene中TOKENIZED,UN_TOKENIZED 解釋
阅读量:6844 次
发布时间:2019-06-26

本文共 1561 字,大约阅读时间需要 5 分钟。

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                   沒有這種用法
如果要對某Field進行查找,那麼一定要把Field.Index設置為TOKENIZED或UN_TOKENIZED。TOKENIZED會對Field的內容進行分詞;而UN_TOKENIZED不會,只有全詞匹配,該Field才會被選中。

如果Field.Store是No,那麼就無法在搜索結果中從索引數據直接提取該域的值,會使null。

 

2.4版本的補充

我們那文章表為例.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:存儲位置和偏移量

转载地址:http://yzdul.baihongyu.com/

你可能感兴趣的文章
VS2010与IIS Express
查看>>
jdis操作redis cluster
查看>>
算法学习之路|最小生成树——prime算法
查看>>
如何授予邮箱的代理发送权限
查看>>
Java Hex 16进制的 byte String 转换类
查看>>
lzg_ad:如何在VMWare中调试你的XPE
查看>>
读Linux那些事儿之我是U盘笔记(一)
查看>>
C# 标准代码排版样例
查看>>
C# asp.net常见编译|运行错误
查看>>
Ajax登录页面
查看>>
Linux查看系统block size的多种方法
查看>>
用SNMP实现对大型网络的轻松管理!
查看>>
Docker 组件如何协作?- 每天5分钟玩转容器技术(8)
查看>>
员工的不幸?还是公司的悲哀?
查看>>
python 常用的模块 optparse与ConfigParser
查看>>
C++ 对象的内存布局(下)
查看>>
P2P系统仿真: oversim+INET+omnetPP
查看>>
[Unity3d]小地图的制作
查看>>
频繁变化的表无效索引造成的热点块争用
查看>>
Exchange2003 反垃圾邮件之一
查看>>