我的编码如下:
{
"query": {
"bool": {
"must": [
{
"multi_match": {
"query": [
"5347"
],
"fields": [
"stkno",
"tag",
"content",
"htext"
],
"operator": "or"
}
}
]
}
},
"size": 500,
"sort": [
{
"CDate": {
"order": "desc"
}
}
]
}
如果必须和运营商结合在一起,那意味着什么?如果使用must和operator是or,Elasticsearch将在有条件的情况下运行。
谢谢
最佳答案
Must
类似于多个查询之间的And
。
举个例子:
"query": {
"bool": {
"must": [
{ // Query 1},
{ // Query 2}
]
}
}
如果
Query1
和 Query2
均返回结果,则上述查询将返回结果。关于must
here的研究而上述查询中的
operator
或适用于multi_match
查询。举个例子:
"multi_match": {
"query": [
"text1 text2"
],
"fields": [
"field1",
"field2"
],
"operator": "or"
}
此处或运算符将在
text1
查询中提到的text2
和multimatch
之间工作。这意味着,如果field1
或field2
字段中的任何一个包含text1
或 text2
,则将返回文档。关于operator
here的研究现在,如果我们考虑上面给出的示例。由于
must
子句中只有一个查询,因此您将看不到和行为。并且
multimatch
查询中只有文本“5347”,您将无法看到多重匹配查询的或行为希望这可以澄清您的疑问。
关于elasticsearch - 含义必须和运算符结合,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43929508/