Lucene bool Query
2019-10-16 本文已影响0人
秦汉邮侠
解释
- must: 子句(查询)必须出现在匹配的文档中,并将有助于得分。
- filter: 子句(查询)必须出现在匹配的文档中。但是不像
must
查询的分数将被忽略。Filter子句在[filter上下文] - should: 子句(查询)应出现在匹配的文档中。可以匹配,也可以不匹配,匹配的比不匹配的排名高,但是只有should,没有must的情况下必须匹配一个
- must_not: 子句查询不得出现在匹配的文档中。子句在过滤上下文中执行,这意味着计分被忽略,并且子句被视为用于缓存。由于忽略计分,0因此将返回所有文档的分数。
查询前缀
- must: 前缀+
- must_not: 前缀-
- should: 什么都不加
- 和常见的bool :AND OR NOT 并不完全一样
如下例子
- black +cat -dog
- 翻译成bool查询: (cat OR (black and cat) AND NOT dog
- 显然lucene的bool查询更简单