Field.Index、 Field.Store解释、BooleanQuery查询


由于lucene版本间兼容性特别的坑..,这里就不再对Field.Index、 Field.Store做详细的解释[luncen 版本不同,Field.Index、 Field.Store属性也是不同的;以该版本的API为准]
网上摘超例子,可以更好的有助你理解。
例子如下:

我们以文章表为例.articleinfo.
有ID,title(标题),sumary(摘要),content(内容),userName(用户名)

其中title(标题),sumary(摘要)属于第一种情况,既要索引也要分词,也要存储.
content(内容)要分词,索引,但不存储.由于他太大了,而且界面也不用显示整个内容.
ID要存储,不用索引.因为没人用他来查询.但拼URL却很需要他.索引要存储.
userName(用户名)索引,但不分词.可用保存.为什么不分词?比如"成吉思汗",我不想被"成汉"搜索到.我希望要么"成吉思汗"或者"*吉思*"通配符搜到.


应用BooleanQuery进行组合查询时,条件之间的关系是由类BooleanClause.Occur控制的,BooleanClause.Occur中提供了三个参数值进行控制
BooleanClause.Occur.MUST
BooleanClause.Occur.MUST_NOT
BooleanClause.Occur.SHOULD



1、MUST和MUST表示“与”的关系,即“并集”。
2、MUST和MUST_NOT前者包含后者不包含。
3、MUST_NOT和MUST_NOT没意义
4、SHOULD与MUST表示MUST,SHOULD失去意义;
5、SHOUlD与MUST_NOT相当于MUST与MUST_NOT。
6、SHOULD与SHOULD表示“或”的概念。

你可能感兴趣的:(Lucene,Field.Index,Field.Store)