如何使用 elasticsearch-dsl-py 创建“或”条件过滤器?
How do I create an “or” Condition filter using elasticsearch-dsl-py?
下面的查询是我想用elasticsearch-dsl-py构造的,但是我不知道怎么做。
GET /my_index/_search
{
"query": {
"filtered": {
"filter": {
"bool": {
"or": {
"filters": [
{
"term": {
"status": "a"
},
"term": {
"x_status": "a"
},
}
]
}
}
}
}
}
}
我只想以 SQL 格式执行如下查询
select * from my_index where status = "a" or x_status="a"
我不确定你是哪个版本的 ES 运行,但只知道 很久以前的版本 5。所以你的查询可以这样重写:
GET /my_index/_search
{
"query": {
"bool": {
"should": [
{
"term": {
"status": "a"
}
},
{
"term": {
"x_status": "a"
}
}
]
}
}
}
使用 elasticsearch-dsl-py
,转换为:
s = Search()
s = s.query('bool', should=[Q('term', status='a'), Q('term', x_status='a')])
下面的查询是我想用elasticsearch-dsl-py构造的,但是我不知道怎么做。
GET /my_index/_search
{
"query": {
"filtered": {
"filter": {
"bool": {
"or": {
"filters": [
{
"term": {
"status": "a"
},
"term": {
"x_status": "a"
},
}
]
}
}
}
}
}
}
我只想以 SQL 格式执行如下查询
select * from my_index where status = "a" or x_status="a"
我不确定你是哪个版本的 ES 运行,但只知道
GET /my_index/_search
{
"query": {
"bool": {
"should": [
{
"term": {
"status": "a"
}
},
{
"term": {
"x_status": "a"
}
}
]
}
}
}
使用 elasticsearch-dsl-py
,转换为:
s = Search()
s = s.query('bool', should=[Q('term', status='a'), Q('term', x_status='a')])