我有一个弹性搜索索引,其中的列是Country和Expertise。我需要编写一个查询,我可以获取其中的记录 国家是(美国或英国) 和 专长是(植物学或物理学)
如何撰写此查询?
答案 0 :(得分:2)
您可以使用bool
和terms
查询执行此操作,如下所示:
{
"query": {
"bool": {
"must": [
{
"terms": {
"Country": [
"USA",
"UK"
]
}
},
{
"terms": {
"Expertise": [
"Botany",
"Physics"
]
}
}
]
}
}
}
另一方面,您只能使用bool
查询来执行此操作:
{
"query": {
"bool": {
"must": [
{
"bool": {
"should": [
{
"term": {
"Country": {
"value": "USA"
}
}
},
{
"term": {
"Country": {
"value": "UK"
}
}
}
]
}
},
{
"bool": {
"should": [
{
"term": {
"Expertise": {
"value": "Botany"
}
}
},
{
"term": {
"Expertise": {
"value": "Physics"
}
}
}
]
}
}
]
}
}
}
但是,在询问任何其他问题之前,请先查看documentation。也许,你可能会发现一个较短的查询。