0

我想在弹性搜索上运行与以下代码等效的查询

if((creator==2 || creator==4 || assignee==8 || assignee==10) && (zone=="Hyderabad") &&(message=="Hello World"))
{
    return document;
}
4

2 回答 2

0

我发现解决方案如下:

{
    "query": {
      "bool": {
        "should": [
          {"term": {"creatorId": 3099}},
          {"term": {"assignedToId": 3099}},
          {"term": {"creatorId": 3111}},
          {"term": {"assignedToId": 3111}}
        ],
        "minimum_should_match": 1,
        "must": [
            {"query_string": {"fields": ["message"],"query": "Hello World"}},
            {"query_string": {"fields": ["zone"],"query": "Hyderabad"}}
            ]
      }
    },
    "sort": [
        {"id": {"order": "desc"}}
    ],
    "from": 0,
    "size": 10
  }
于 2019-04-24T12:54:33.747 回答
0

以下是您要查找的查询。我已经将Bool Query用作操作和操作。mustANDshouldOR

POST <your_index_name>/_search
{  
   "query":{  
      "bool":{  
         "must":[  
            {  
               "match":{  
                  "zone":"hyderabad"
               }
            },
            {  
               "match":{  
                  "message":"hello world"
               }
            },
            {  
               "bool":{  
                  "should":[  
                     {  
                        "match":{  
                           "creator":2
                        }
                     },
                     {  
                        "match":{  
                           "creator":4
                        }
                     },
                     {  
                        "match":{  
                           "assignee":6
                        }
                     },
                     {  
                        "match":{  
                           "assignee":8
                        }
                     }
                  ],
                  "minimum_should_match":1
               }
            }
         ]
      }
   }
}

另请注意,我使用了所有可搜索的小写字母。要知道为什么要阅读Analysis

我还建议您花一些时间阅读以下链接: 文本数据类型关键字数据类型

希望能帮助到你!

于 2019-04-23T11:39:37.243 回答