Lucene布尔运算符运算优先级咨询:顺序规则与搜索示例解析
Lucene布尔运算符的运算规则
Lucene的布尔运算符并非按简单的左右顺序执行,而是遵循固定的优先级规则,优先级从高到低依次为:
NOT(最高优先级)ANDOR(最低优先级)
针对你提到的搜索语句 jakarta OR apache AND website,由于AND的优先级高于OR,会先执行apache AND website的逻辑判断,再将结果与jakarta OR的逻辑结合。最终匹配的内容是:
包含"jakarta",或者同时包含"apache"和"website"的文档
如果需要改变默认的运算顺序,你可以用括号强制指定优先级,比如(jakarta OR apache) AND website,此时会先执行括号内的jakarta OR apache逻辑,最终匹配的是同时包含"website",且包含"jakarta"或"apache"的文档。
内容的提问来源于stack exchange,提问作者Doreen Miller
相关产品推荐
相关产品推荐

