弹性搜索的组合 OR 和 AND 查询
Combined OR and AND query for elastic search
有人可以帮助为以下情况创建弹性搜索查询。
((Field1=Keyword1 AND Field2=Keyword1) OR (Field1=Keyword2 AND Field2=Keyword2) OR ...
提前致谢。
它基本上是一个 top-level bool/should
嵌套 bool/filter
{
"query": {
"bool": {
"minimum_should_match": 1,
"should": [
{
"bool": {
"filter": [
{
"term": {
"Field1": "Keyword1"
}
},
{
"term": {
"Field2": "Keyword1"
}
}
]
}
},
{
"bool": {
"filter": [
{
"term": {
"Field1": "Keyword2"
}
},
{
"term": {
"Field2": "Keyword2"
}
}
]
}
}
]
}
}
}
您可以使用的最简单的方法之一是来自 Elasticsearch 的 Query String 查询类型。这将在内部创建 bool
查询。
{
"query": {
"query_string": {
"query": "((Field1:Keyword1 AND Field2:Keyword1) OR (Field1:Keyword2 AND Field2:Keyword2) OR (Field2:Keyword2))"
}
}
}
有人可以帮助为以下情况创建弹性搜索查询。
((Field1=Keyword1 AND Field2=Keyword1) OR (Field1=Keyword2 AND Field2=Keyword2) OR ...
提前致谢。
它基本上是一个 top-level bool/should
嵌套 bool/filter
{
"query": {
"bool": {
"minimum_should_match": 1,
"should": [
{
"bool": {
"filter": [
{
"term": {
"Field1": "Keyword1"
}
},
{
"term": {
"Field2": "Keyword1"
}
}
]
}
},
{
"bool": {
"filter": [
{
"term": {
"Field1": "Keyword2"
}
},
{
"term": {
"Field2": "Keyword2"
}
}
]
}
}
]
}
}
}
您可以使用的最简单的方法之一是来自 Elasticsearch 的 Query String 查询类型。这将在内部创建 bool
查询。
{
"query": {
"query_string": {
"query": "((Field1:Keyword1 AND Field2:Keyword1) OR (Field1:Keyword2 AND Field2:Keyword2) OR (Field2:Keyword2))"
}
}
}