我想在弹性搜索上运行与以下代码等效的查询
if((creator==2 || creator==4 || assignee==8 || assignee==10) && (zone=="Hyderabad") &&(message=="Hello World"))
{
return document;
}
我想在弹性搜索上运行与以下代码等效的查询
if((creator==2 || creator==4 || assignee==8 || assignee==10) && (zone=="Hyderabad") &&(message=="Hello World"))
{
return document;
}
我发现解决方案如下:
{
"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
}
以下是您要查找的查询。我已经将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。
我还建议您花一些时间阅读以下链接: 文本数据类型和关键字数据类型
希望能帮助到你!