So I used this query ( i have a testbucket)
_explain SELECT a.* FROM testbucket a WHERE ANY obj IN OBJECT_NAMES(a.owners) _
SATISFIES obj == “ownerABC” END AND a.property.cars==‘Chevrolet’
This is the result. It shows that the index is being used and the resultCount =1
_
“requestID”: “5c05aa96-b824-4218-953d-513ef25fb72a”,
“clientContextID”: “383f9887-b4cb-4607-8a47-6cc61af7c535”,
“signature”: “json”,
“results”: [
{
“plan”: {
"#operator": “Sequence”,
"~children": [
{
"#operator": “DistinctScan”,
“scan”: {
"#operator": “IndexScan”,
“index”: “idx_obj_names_cars”,
“index_id”: “f54295e59dc06fd5”,
“keyspace”: “testbucket”,
“namespace”: “default”,
“spans”: [
{
“Range”: {
“High”: [
"“ownerABC”",
"“Chevrolet”"
],
“Inclusion”: 3,
“Low”: [
"“ownerABC”",
"“Chevrolet”"
]
}
}
],
“using”: “gsi”
}
},
{
"#operator": “Fetch”,
“as”: “a”,
“keyspace”: “testbucket”,
“namespace”: “default”
},
{
"#operator": “Parallel”,
"~child": {
"#operator": “Sequence”,
"~children": [
{
"#operator": “Filter”,
“condition”: “(any obj
in object_names((a
.owners
)) satisfies (obj
= “ownerABC”) end and (((a
.property
).cars
) = “Chevrolet”))”
},
{
"#operator": “InitialProject”,
“result_terms”: [
{
“expr”: “a
”,
“star”: true
}
]
},
{
"#operator": “FinalProject”
}
]
}
}
]
},
“text”: “SELECT a.* FROM testbucket a WHERE ANY obj IN OBJECT_NAMES(a.owners) \nSATISFIES obj == “ownerABC” END AND a.property.cars==‘Chevrolet’”
}
],
“status”: “success”,
“metrics”: {
“elapsedTime”: “11.235584ms”,
“executionTime”: “11.197927ms”,
“resultCount”: 1,
“resultSize”: 2853
}
}
But when I run without the explain I get this
_SELECT a.* FROM testbucket a WHERE ANY obj IN OBJECT_NAMES(a.owners) _
SATISFIES obj == “ownerABC” END AND a.property.cars==‘Chevrolet’
_
“requestID”: “ad06fe2e-0e70-4512-961f-3a12c95ca53b”,
“clientContextID”: “ce4addec-8615-4ea2-83d9-413612eb201e”,
“signature”: {
"": ""
},
“results”: [
],
“status”: “success”,
“metrics”: {
“elapsedTime”: “8.257401ms”,
“executionTime”: “8.210229ms”,
“resultCount”: 0,
“resultSize”: 0
}
}