lucene中TOKENIZED,UN_TOKENIZED 解釋
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:存儲位置和偏移量
lucene中TOKENIZED,UN_TOKENIZED 解釋的更多相关文章
- Lucene 中自定义排序的实现
使用Lucene来搜索内容,搜索结果的显示顺序当然是比较重要的.Lucene中Build-in的几个排序定义在大多数情况下是不适合我们使用的.要适合自己的应用程序的场景,就只能自定义排序功能,本节我们 ...
- 【Java】Lucene检索引擎详解
基于Java的全文索引/检索引擎——Lucene Lucene不是一个完整的全文索引应用,而是是一个用Java写的全文索引引擎工具包,它可以方便的嵌入到各种应用中实现针对应用的全文索引/检索功能. L ...
- 转载:PCB名詞解釋:通孔、盲孔、埋孔
在[電子製造業]打滾多年,分享 SMT.焊錫.塑膠射出.產品設計.瓦楞包裝…等經驗.請注意文章內容不見得都正確,服用前請三思… 之前有網友提醒我有篇文章把PCB的盲孔(Blind hole).埋孔(B ...
- 製程能力介紹(SPC introduction) ─ Cp之製程能力解釋
Cp之製程能力解釋 從常態分配的特性來看,在群體中 ±3σ(標準差) 之範圍內的值,應包含群體全部的 99.73%.也就是說,若以 6σ為單位,就可以代表整個分布的範圍,但是有 0.27% (2700 ...
- lucene 中关于Store.YES 关于Store.NO的解释
总算搞明白 lucene 中关于Store.YES 关于Store.NO的解释了 一直对Lucene Store.YES不太理解,网上多数的说法是存储字段,NO为不存储. 这样的解释有点郁闷:字面意 ...
- PCB名詞解釋:通孔、盲孔、埋孔(转载)
文章转载自:https://www.researchmfg.com/2011/07/pth-blind-hole-buried-hole/ PCB名詞解釋:通孔.盲孔.埋孔 Posted by 工作熊 ...
- Lucene系列三:Lucene分词器详解、实现自己的一个分词器
一.Lucene分词器详解 1. Lucene-分词器API (1)org.apache.lucene.analysi.Analyzer 分析器,分词器组件的核心API,它的职责:构建真正对文本进行分 ...
- Lucene 中的Tokenizer, TokenFilter学习
lucene中的TokenStream,TokenFilter之间关系 TokenStream是一个能够在被调用后产生语汇单元序列的类,其中有两个类型:Tokenizer和TokenFilte ...
- 超強的Linux指令解釋網站《explainshell.com》,學Linux必備!
ExplainShell 官方網站:http://explainshell.com/ 原始碼下載:https://github.com/idank/explainshell 用瀏覽器打該explain ...
随机推荐
- 轻松玩转AI 与PDF文件的转化(完美解决字体问题)
经过漫长而坚苦卓绝的研究查阅了网上无数资料下载了众多相关软件进行试验终于,找到搞定PDF文件的方便并且有效的办法PDF文件!你这个魔鬼!退去吧!!!! 难点一: 如何修改客户常常会提供不知道从哪里搞来 ...
- NeighboringCellInfo.aidl
在src下先建立包名为android.telephony(右键src > new > package,create package-info.java打钩),然后右键刚建的android. ...
- CTF-练习平台-Misc之 Convert
十八.Convert 打开后发现是01代码,转换为16进制代码如下 将代码复制到winhex里面发现是rar文件,保存 打开后发现里面有个图片 解压后在图片的属性里发现一段base64代码,对其解密 ...
- JQuery输入框获取/失去焦点行为
//搜索框获取焦点清除内容 $(function() { $("input").focus(function() { //获取焦点,清空默认内容 $(this).css('colo ...
- 【mysql】mac上基于tar.gz包安装mysql服务
一.准备工作 (1)下载mysql-5.7.21-macos10.13-x86_64.tar.gz,并将该压缩包移动至/usr/local目录下 (2)解压压缩包 二.安装 (1)将解压的包重命名为m ...
- this的区别
数据中心:this与_this的区别 getSelectData:function(){ var _this=this; _this.queryAjax(URL.selectData,'','post ...
- 进程间通信--POSIX消息队列
相关函数: mqd_t mq_open(const char *name, int oflag); mqd_t mq_send(mqd_t mqdes, const char *msg_ptr, si ...
- Cocos2d-X数据、动作、消息的基本操作
加入类的create方法: CREATE_FUNC(ClassName) 使用这个宏能够为类加入一个create方法. 创建类的对象时一律用Class::create()的形式. 在CREATE_FU ...
- RequireJS 学习
几个学习点: 配置模块路径 定义模块 配置不支持 AMD jsonp 服务 text 插件 css 插件
- 阿里巴巴Java开发手册-集合处理
1. [强制]关于 hashCode 和 equals 的处理,遵循如下规则: 1) 只要重写 equals ,就必须重写 hashCode . 2) 因为 Set 存储的是不重复 ...