我是lucene的初学者。这是我的来源:
ft = new FieldType(StringField.TYPE_STORED);
ft.setTokenized(false);
ft.setStored(true);
ftNA = new FieldType(StringField.TYPE_STORED);
ftNA.setTokenized(true);
ftNA.setStored(true);
为什么在lucene中被标记化?例如:“我的名字是lee”的字符串值
我不明白为什么要通过tokenized进行索引。标记化和非标记化之间有什么区别?
答案 0 :(得分:1)
Lucene通过在文档中查找令牌来满足查询所表达的约束。
例如,如果您搜索lee
,查询将查找包含令牌 lee
的所有文档。如果该字段未被标记化,则您只能找到my name is lee
,但不仅仅是lee
。
现在假设您搜索"is lee"
。这是PhraseQuery
,这意味着它会匹配令牌is
,后跟令牌lee
。
需要进行标记化,因为Lucene使用反向索引,即它将标记映射到包含它们的文档。