Can anyone share a working example of how to match or filter a field based on existing data? I have attempted the following query but it still returns all values. Also whats the difference between match and filter? Thanks
index shard prirep state node
partial-.ds-logs-network.netflow-default-2025.11.27-002008 0 p STARTED instance-0000000019
partial-.ds-logs-network.netflow-default-2025.11.27-002008 1 p STARTED instance-0000000049
partial-.ds-logs-network.netflow-default-2025.11.27-002008 2 p STARTED instance-0000000052
partial-.ds-logs-network.netflow-default-2025.11.27-002008 3 p STARTED instance-0000000039
partial-.ds-logs-network.lb-default-2025.12.04-000874 0 p STARTED instance-0000000049
partial-.ds-logs-network.fw-fortigate-2025.09.26-001661 0 p STARTED instance-0000000040
//TEST_QUERY_1
GET _cat/shards?v=true&h=index,shard,prirep,state,node,unassigned.reason&s=state&format=json/_search
{
"query": {
"match": {
"query": "1",
"fields":["shard"]
}
}
}
}
//TEST_QUERY_2
GET _cat/shards?v=true&h=index,shard,prirep,state,node,unassigned.reason&s=state&format=json/_search
{
"query": {
"match": {
"shard": {
"gt": "1"
}
}
}
}
//TEST_QUERY_3
GET _cat/shards?v=true&h=index,shard,prirep,state,node,unassigned.reason&s=state&format=json/_search
{
"query": {
"bool": {
"must": {
"match": {
"shard": "0"
}
}
}
}
}

