IndexOptions是在lucene-core-x.jar包下面,其作用是在新建索引时候选择索引属性。
IndexOptions是一个枚举类:
枚举变量说明:
NONE | 不被索引 |
DOCS_AND_FREQS | 文档和词频建立索引 |
DOCS_AND_FREQS | 仅对文档和词频建立索引 |
DOCS_AND_FREQS_AND_POSITIONS | 文档、词频、词位置建立索引 |
DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS | 文档、词频、词位置、偏移量建立索引 |
补充:位置(position)和偏移量(offset)的区别?
位置是基于词Term的,偏移量是基于字母和汉字的,如果不好理解可以参考以下图:
![](https://img-blog.csdnimg.cn/20191016222502764.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2RyZWFtenVvcmE=,size_16,color_FFFFFF,t_70)
使用注意:
在建立索引时候会应用,选择不同的IndexOption可以较少索引所占的空间,提升查询的效率,但与之相反有些查询操作就不支持,例如:
FieldType fieldType = new FieldType();
fieldType.setIndexOptions(IndexOptions.DOCS_AND_FREQS);
fieldType.setStored(true);
fieldType.setTokenized(true);
此时由于选择的是IndexOptions.DOCS_AND_FREQS枚举类型,此时选择短语查询PhraseQuery会失效,由于没有记录POSITIONS词位置,此时无法进行短语查询。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)