Elasticsearch must子句的用法(附带实例)
在 Elasticsearch 中,假设我们想找到所有 zhangsan 撰写的书,可以创建一个带有 must 子句的 bool 查询。在 must 子句中,我们编写了一个 match 查询来搜索 zhangsan 撰写的书,代码如下:
当我们说 must 子句接受一组由多个查询组成的数组时,意味着什么?这意味着我们可以向 must 子句中添加多个查询,使其变得更加复杂。
例如,下面实例中包含一个带有两个叶子查询的 must 子句,其中一个叶子查询是搜索作者的 match 查询,另一个叶子查询是搜索短语的 match_phrase 查询。
GET books/_search
{
"query": {
"bool": { ←--- bool查询
"must": [{ ←--- must子句:文档必须匹配这一查询条件
"match": { ←--- 其中一个查询(match查询)匹配Joshua撰写的书
"author": "zhangsan"
}
}]
}
}
}
注意,bool 查询被包含在 query 对象中。它有一个 must 子句,这个子句又接受一个由多个查询条件(在这个例子中是匹配 zhangsan 撰写的所有书)组成的数组。当我们说 must 子句接受一组由多个查询组成的数组时,意味着什么?这意味着我们可以向 must 子句中添加多个查询,使其变得更加复杂。
例如,下面实例中包含一个带有两个叶子查询的 must 子句,其中一个叶子查询是搜索作者的 match 查询,另一个叶子查询是搜索短语的 match_phrase 查询。
GET books/_search
{
"query": {
"bool": {
"must": [{ ←--- 带有两个叶子查询的must子句
"match": { ←--- match查询查找Joshua撰写的书
"author": "zhangsan"
}
},
{
"match_phrase": { ←--- 第二个查询在字段中搜索一个短语
"synopsis": "best C programming books"
}
}]
}
}
}
ICP备案:
公安联网备案: