首页,大家可以先看下这个文章引用【[url]http://iamyida.iteye.com/blog/2194345[/url]】
我以前是用的是lucene 3.X版本,后来某些原因要更新到lucene 5.x版本,所以选择了5.5.2版本,在升级的过程中查阅了资料。其中就是在LUCENE4 版本及以前都是使用
Field.Index 这样的方式判断是否分词创建索引。
所以我遇到的第一个问题,以下的字段域我怎么样不分词创建索引呢?就直接使用new StringField这个子类即可。
[b]原因如下:[/b]
在lucene 5.x版本后,对以前的Field进行了更多的细化,如IntField, LongField, FloatField, DoubleField, BinaryDocValuesField, NumericDocValuesField, SortedDocValuesField, StringField, TextField, StoredField 这些类都继承了Field类。
接下来我们看下StringField这个类的源码:
以上源码我们看到[b] TYPE_STORED.setTokenized(false);[/b]都是false.内置默认是不分词的。所以我们直接new StringField即可。
-------------------------------------不懂的加 q_q:153 654 8741-----------------------
我以前是用的是lucene 3.X版本,后来某些原因要更新到lucene 5.x版本,所以选择了5.5.2版本,在升级的过程中查阅了资料。其中就是在LUCENE4 版本及以前都是使用
doc.add(new Field(groupName, dwgContent, Field.Store.NO,Field.Index.ANALYZED));
doc.add(new Field("display_has_dwg", "true", Field.Store.YES,
[b]Field.Index.NOT_ANALYZED[/b]));
Field.Index 这样的方式判断是否分词创建索引。
所以我遇到的第一个问题,以下的字段域我怎么样不分词创建索引呢?就直接使用new StringField这个子类即可。
doc.add(new StringField("lucene_mainid", luceneTask.getTablenames()+"."+luceneTask.getTablekey(), Field.Store.YES));
[b]原因如下:[/b]
在lucene 5.x版本后,对以前的Field进行了更多的细化,如IntField, LongField, FloatField, DoubleField, BinaryDocValuesField, NumericDocValuesField, SortedDocValuesField, StringField, TextField, StoredField 这些类都继承了Field类。
接下来我们看下StringField这个类的源码:
static {
TYPE_NOT_STORED.setOmitNorms(true);
TYPE_NOT_STORED.setIndexOptions(IndexOptions.DOCS);
[b] TYPE_NOT_STORED.setTokenized(false);[/b]
TYPE_NOT_STORED.freeze();
TYPE_STORED.setOmitNorms(true);
TYPE_STORED.setIndexOptions(IndexOptions.DOCS);
TYPE_STORED.setStored(true);
[b] TYPE_STORED.setTokenized(false);[/b]
TYPE_STORED.freeze();
}
以上源码我们看到[b] TYPE_STORED.setTokenized(false);[/b]都是false.内置默认是不分词的。所以我们直接new StringField即可。
-------------------------------------不懂的加 q_q:153 654 8741-----------------------
Lucene 5.5.2中Field的分词与不分词处理
在从Lucene 3.x升级到5.5.2版本时,发现Field的使用有所变化。在Lucene 4版本以后,Field被进一步细化为多个子类,如IntField、StringField等。对于不分词创建索引的需求,可以直接使用StringField,因为它的TYPE_STORED.setTokenized(false),默认设置为不分词。这样可以实现对文本的不分词索引。
2331

被折叠的 条评论
为什么被折叠?



