具有逻辑 OR 和 AND 条件的 Elasticsearch Query DSL
Elasticsearch Query DSL with logical OR and AND conditions
我在 Elasticsearch 中有以下文档。
{
"id": "1234",
"color": "red"
}
{
"id": "1234",
"color": "burgundy"
}
{ "id": "4321",
"color": "red"
}
{ "id": "1111",
"color": "red"
}
{ "id": "2222",
"color": "red"
}
{ "id": "3333",
"color": "red"
}
{ "id": "4444",
"color": "red"
}
{ "id": "5555",
"color": "red"
}
{ "id": "6666",
"color": "red"
}
我只想检索符合以下条件的文档。
- 值为 1234 或 4321 的文档 ID
- and 红色文档
我正在尝试准备一个查询 DSL,它将 return 只有 2 个文档(第一个和第三个)。我已经尝试了以下但它正在 returning 所有颜色为红色的文档并且它忽略了第一个条件。
{"query":
{"bool":
{"should": [
{"term": {"id": "1234"}},
{"term": {"id": "4321"}}
],
"filter": [
{"term": {"color": "red"}}
]
}
}
}
有人可以帮忙吗?提前致谢。
{
"query": {
"bool": {
"must": [
{
"terms": {
"id": [
"1234",
"4321"
]
}
},
{
"term": {
"color": "red"
}
}
]
}
}
}
我在 Elasticsearch 中有以下文档。
{
"id": "1234",
"color": "red"
}
{
"id": "1234",
"color": "burgundy"
}
{ "id": "4321",
"color": "red"
}
{ "id": "1111",
"color": "red"
}
{ "id": "2222",
"color": "red"
}
{ "id": "3333",
"color": "red"
}
{ "id": "4444",
"color": "red"
}
{ "id": "5555",
"color": "red"
}
{ "id": "6666",
"color": "red"
}
我只想检索符合以下条件的文档。
- 值为 1234 或 4321 的文档 ID
- and 红色文档
我正在尝试准备一个查询 DSL,它将 return 只有 2 个文档(第一个和第三个)。我已经尝试了以下但它正在 returning 所有颜色为红色的文档并且它忽略了第一个条件。
{"query":
{"bool":
{"should": [
{"term": {"id": "1234"}},
{"term": {"id": "4321"}}
],
"filter": [
{"term": {"color": "red"}}
]
}
}
}
有人可以帮忙吗?提前致谢。
{
"query": {
"bool": {
"must": [
{
"terms": {
"id": [
"1234",
"4321"
]
}
},
{
"term": {
"color": "red"
}
}
]
}
}
}