lucene 检索流程整理笔记

语法树1

BooleanClause.Occur.MUST         表示and

BooleanClause.Occur.MUST_NOT 表示not

BooleanClause.Occur.SHOULD     表示or

QueryParser.AND_OPERATOR == Operator.AND 表示and

QueryParser.OR_OPERATOR   == Operator.OR 表示or

张三 AND 李四, 

BooleanClause.Occur.MUST是针对张三和李四的关系,

QueryParser.AND_OPERATOR是针对张和三,李和四的关系

Lucene支持两种通配符:问号(?)和星号(*)。

你可以使用问号(?)来进行单字符的通配符查询,或者利用星号(*)进行多字符的通配符查询。

(?):如果你想搜索tiny 或者 tony,你就可以使用查询语句 “t?ny”;

(*): 如果你想查询 Teach, Teacher 和Teaching,你就可以使用查询语句 “Teach*”。清单3 显示了通配符查询的过程。

对于不分词的中英文都无法实现字符串中的前通配功能! 即 "*张三","*aaa", 这里luke查询会报错,在程序里使用WildcardQuery不会报错,但也没有结果!

原文地址:https://www.cnblogs.com/o-andy-o/p/3872875.html