关于Lucene分词的一些总结

 Lucene3.6与7.2版在声明变量上本存比较大差异

 

这两个版本可以概括Lucene前期版本和后期版本的大概变化

 

QueryParser qp = new QueryParser( String f, Analyzer a);
query = qp.parse(queryStr);
 
QueryParser已经包含了其他搜索器的实现,只要在搜索结果加上相应的搜索方式就可以达到用同样搜索器的效果

 

 

在搜索时创建索引和搜索时所使用的分词器会影响搜索的结果

 

中文分词

如果创建索引时,分词器为一元分词器,则搜索时可以按最细分词颗粒度来搜索。

例如:

“百度一下”

如果用一元分词器分词的结果是:

百,度,一,下

此时搜索可以按单个字来搜索。

 

但如果用的是只能中文分词器,则会把搜索内容以词组的方式作为索引。此时单个字搜索是没有结果。因为创建索引时,分词颗粒度不是最细,分词是以词组的方式才能被搜索。

例如:

用智能中文分词器分词的结果是:

百度,一下

此时搜索单个字时不能搜索出结果。

猜你喜欢

转载自a1b19pm.iteye.com/blog/2409995