我的编码如下:
{
"query": {
"bool": {
"must": [
{
"multi_match": {
"query": [
"5347"
],
"fields": [
"stkno",
"tag",
"content",
"htext"
],
"operator": "or"
}
}
]
}
},
"size": 500,
"sort": [
{
"CDate": {
"order": "desc"
}
}
]
}
如果必须和运营商结合在一起意味着什么?如果使用must和operator是?
,Elasticsearch将运行条件由于
答案 0 :(得分:3)
Must
与And
类似。
举个例子:
"query": {
"bool": {
"must": [
{ // Query 1},
{ // Query 2}
]
}
}
如果Query1
AND Query2
返回结果,则上述查询将返回结果。关于must
here
以上查询中的operator
OR 适用于multi_match
查询。
以例如:
"multi_match": {
"query": [
"text1 text2"
],
"fields": [
"field1",
"field2"
],
"operator": "or"
}
此处 OR 运算符将在text1
查询中提到的text2
和multimatch
之间工作。这意味着,如果任何字段field1
或field2
包含text1
或 text2
,则会返回文档。关于operator
here
现在,如果我们考虑上面给出的例子。由于您在must
子句中只有一个查询,因此您无法看到 AND 行为。
您只有multimatch
查询中的文字,即" 5347" ,您无法看到多匹配查询的 OR 行为
希望这能澄清你的怀疑。