Queries with curl/http requests
Couchbase Full Text Search supports running multiple types of queries through curl/http request.
Term Query
The below sample responds with a list of documents in which the field type contains the term airline.
The query works only for the terms with single word. |
Curl Request
curl -XPOST -H "Content-Type: application/json" -u <username>:<password> \
http://localhost:8094/api/index/DemoIndex/query -d '{
"query": {
"term": "giverny",
"field": "title"
}
}'
Curl Response
{ "status":{ "total":1, "failed":0, "successful":1 }, "request":{ "query":{ "term":"giverny", "field":"title" }, "size":10, "from":0, "highlight":null, "fields":null, "facets":null, "explain":false, "sort":["-_score"], "includeLocations":false, "search_after":null, "search_before":null }, "hits":[ { "index":"DemoIndex_76059e8b3887351c_4c1c5584", "id":"hotel_10064", "score":10.033205341869529, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_76059e8b3887351c_4c1c5584", "id":"hotel_10063", "score":10.033205341869529, "sort":["_score"], "fields":{"_$c":"hotel"} } ], "total_hits":2, "max_score":10.033205341869529, "took":219177695, "facets":null }
Phrase query
The below sample responds with a list of documents in which the field title contains specified phrase. For example, Glossop or Giverny.
Curl Request
curl -XPOST -H "Content-Type: application/json" -u <username>:<password> \ http://localhost:8094/api/index/DemoIndex/query -d'{ "query": { "terms": ["glencoe", "youth", "hostel"], "field": "name" } }'
Curl Response
{ "status":{ "total":1, "failed":0, "successful":1 }, "request":{ "query":{ "terms":["glencoe","youth","hostel"], "field":"name" }, "size":10, "from":0, "highlight":null, "fields":null, "facets":null, "explain":false, "sort":["-_score"], "includeLocations":false, "search_after":null, "search_before":null }, "hits":[ { "index":"DemoIndex_76059e8b3887351c_4c1c5584", "id":"hotel_10142", "score":8.77552218572323, "locations":{ "name":{ "glencoe":[ { "pos":1, "start":0, "end":7, "array_positions":null } ], "hostel":[ { "pos":3, "start":14, "end":20, "array_positions":null } ], "youth":[ { "pos":2, "start":8, "end":13, "array_positions":null } ] } }, "sort":["_score"], "fields":{"_$c":"hotel"} } ], "total_hits":1, "max_score":8.77552218572323, "took":199844879, "facets":null }
Match Query
The below sample responds with a list of documents in which the field name contains the exact matching term specified in the term field. For example, "40-Mile Air".
Curl Request
curl -XPOST -H "Content-Type: application/json" -u <username>:<password> \ http://localhost:8094/api/index/DemoIndex/query -d '{ "query": { "field": "name", "match": "40-Mile Air" } }'
Curl Response
{ "status":{ "total":1, "failed":0, "successful":1 }, "request":{ "query":{ "match":"40-Mile Air", "field":"name", "prefix_length":0, "fuzziness":0, "operator":"or" }, "size":10, "from":0, "highlight":null, "fields":null, "facets":null, "explain":false, "sort":["-_score"], "includeLocations":false, "search_after":null, "search_before":null }, "hits":[ { "index":"DemoIndex_580e3ee6ba3ac900_4c1c5584", "id":"airportDoc", "score":10.30528795525373, "sort":["_score"], "fields":{"_$c":"airline"} }, { "index":"DemoIndex_580e3ee6ba3ac900_4c1c5584", "id":"hotel_16687", "score":1.085367329598051, "sort":["_score"], "fields":{"_$c":"hotel"} } ], "total_hits":2, "max_score":10.30528795525373, "took":86844745, facets":null }
Match_Phrase query
The below sample responds with a list of documents in which the field name contains the exactly matching phrase specifed in match_phrase. For example, 40-Mile Air.
Curl Request
curl -XPOST -H "Content-Type: application/json" -u <username>:<password> \ http://localhost:8094/api/index/DemoIndex/query -d '{ "query": { "match_phrase": "40-Mile Air", "field": "name" } }'
Curl Response
{ "status":{ "total":1, "failed":0, "successful":1 }, "request":{ "query":{ "match_phrase": "40-Mile Air", "field":"name" }, "size":10, "from":0, "highlight":null, "fields":null, "facets":null, "explain":false, "sort":["-_score"], "includeLocations":false, "search_after":null, "search_before":null }, "hits":[ { "index":"DemoIndex_580e3ee6ba3ac900_4c1c5584", "id":"airportDoc", "score":10.305287955253732, "locations":{ "name":{ "40":[ { "pos":1, "start":0, "end":2, "array_positions":null } ], "air":[ { "pos":3, "start":8, "end":11, "array_positions":null } ], "mile":[ { "pos":2, "start":3, "end":7, "array_positions":null } ] } }, "sort":["_score"], "fields":{"_$c":"airline"} } ], "total_hits":1, "max_score":10.305287955253732, "took":62498613, "facets":null }
Fuzzy Query
The below sample responds with a list of documents in which the field name contains the term that matches with the phrase specified in the match field. For example, 40-Mile Air. It considers the matching to a degree specified in the fuzziness field instead of exact matching.
Curl Request
curl -XPOST -H "Content-Type: application/json" -u <username>:<password> \ http://localhost:8094/api/index/DemoIndex/query -d '{ "query": { "field": "name", "match": "40-Mile Air", "fuzziness": 2 } }'
Curl Response
{ "status":{ "total":1, "failed":0, "successful":1 }, "request":{ "query":{ "match":"40-Mile Air", "field":"name", "prefix_length":0, "fuzziness":2, "operator":"or" }, "size":10, "from":0, "highlight":null, "fields":null, "facets":null, "explain":false, "sort":["-_score"], "includeLocations":false, "search_after":null, "search_before":null }, "hits":[ { "index":"DemoIndex_580e3ee6ba3ac900_4c1c5584", "id":"hotel_19199","score":0.17049220881184127, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_580e3ee6ba3ac900_4c1c5584", "id":"airportDoc", "score":0.0956994969941305, "sort":["_score"], "fields":{"_$c":"airline"} }, { "index":"DemoIndex_580e3ee6ba3ac900_4c1c5584", "id":"hotel_21608", "score":0.05690871682349641, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_580e3ee6ba3ac900_4c1c5584", "id":"hotel_19326", "score":0.05579005002540549, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_580e3ee6ba3ac900_4c1c5584", "id":"hotel_21037", "score":0.05061580360832486, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_580e3ee6ba3ac900_4c1c5584", "id":"hotel_35854", "score":0.04431672583269436, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_580e3ee6ba3ac900_4c1c5584", "id":"hotel_3491", "score":0.04321478718467854, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_580e3ee6ba3ac900_4c1c5584", "id":"hotel_20421", "score":0.04286437075446538, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_580e3ee6ba3ac900_4c1c5584", "id":"hotel_1362", "score":0.037911531284201695, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_580e3ee6ba3ac900_4c1c5584", "id":"hotel_21721", "score":0.037911531284201695, "sort":["_score"], "fields":{"_$c":"hotel"} } ], "total_hits":163, "max_score":0.17049220881184127, "took":21410046, "facets":null }
Curl Request
curl -XPOST -H "Content-Type: application/json" -u <username>:<password> \ http://localhost:8094/api/index/DemoIndex/query -d '{ "query": { "field": "name", "match": "40-Mile Air", "fuzziness": 1 }, "includeLocations": true }'
Curl Response
{ "status":{ "total":1, "failed":0, "successful":1 }, "request":{ "query":{ "match":"40-Mile Air", "field":"name", "prefix_length":0, "fuzziness":0, "operator":"or" }, "size":10, "from":0, "highlight":null, "fields":null, "facets":null, "explain":false, "sort":["-_score"], "includeLocations":false, "search_after":null, "search_before":null }, "hits":[ { "index":"DemoIndex_580e3ee6ba3ac900_4c1c5584", "id":"airportDoc", "score":10.30528795525373, "sort":["_score"], "fields":{"_$c":"airline"} }, { "index":"DemoIndex_580e3ee6ba3ac900_4c1c5584", "id":"hotel_16687", "score":1.085367329598051, "sort":["_score"], "fields":{"_$c":"hotel"} } ], "total_hits":2, "max_score":10.30528795525373, "took":86844745, "facets":null }
Curl Request
curl -XPOST -H "Content-Type: application/json" -u <username>:<password> \ http://localhost:8094/api/index/DemoIndex/query -d '{ "query": { "field": "name", "match": "40-Mile Air", "fuzziness": 2 }, "includeLocations": true, "analyzer": "standard" }'
Curl Response
{ "status":{ "total":1, "failed":0, "successful":1 }, "request":{ "query":{ "match":"40-Mile Air", "field":"name", "prefix_length":0, "fuzziness":2, "operator":"or" }, "size":10, "from":0, "highlight":null, "fields":null, "facets":null, "explain":false, "sort":["-_score"], "includeLocations":true, "search_after":null, "search_before":null }, "hits":[ { "index":"DemoIndex_580e3ee6ba3ac900_4c1c5584", "id":"hotel_19199", "score":0.17049220881184127, "locations":{ "name":{ "aire":[ { "pos":1, "start":0, "end":4, "array_positions":null }, { "pos":5, "start":26, "end":30, "array_positions":null } ], "le":[ { "pos":3, "start":15, "end":17, "array_positions":null } ] } }, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_580e3ee6ba3ac900_4c1c5584", "id":"airportDoc", "score":0.0956994969941305, "locations":{ "name":{ "40":[ { "pos":1, "start":0, "end":2, "array_positions":null } ], "air":[ { "pos":3, "start":8, "end":11, "array_positions":null } ], "mile":[ { "pos":2, "start":3, "end":7, "array_positions":null } ] } }, "sort":["_score"], "fields":{"_$c":"airline"} }, { "index":"DemoIndex_580e3ee6ba3ac900_4c1c5584", "id":"hotel_21608", "score":0.05690871682349641, "locations":{ "name":{ "le":[ { "pos":2, "start":6, "end":8, "array_positions":null } ], "m":[ { "pos":3, "start":9, "end":10, "array_positions":null } ] } }, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_580e3ee6ba3ac900_4c1c5584", "id":"hotel_20421", "score":0.04286437075446538, "locations":{ "name":{ "nh":[ { "pos":1, "start":0, "end":2, "array_positions":null } ], "nice":[ { "pos":2, "start":3, "end":7, "array_positions":null } ] } }, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_580e3ee6ba3ac900_4c1c5584", "id":"hotel_1362", "score":0.037911531284201695, "locations":{ "name":{ "au":[ { "pos":1, "start":0, "end":2, "array_positions":null } ] } }, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_580e3ee6ba3ac900_4c1c5584", "id":"hotel_21721", "score":0.037911531284201695, "locations":{ "name":{ "iv":[ { "pos":3, "start":12, "end":14, "array_positions":null } ] } }, "sort":["_score"], "fields":{"_$c":"hotel"} } ], "total_hits":163, "max_score":0.17049220881184127, "took":610500365, "facets":null }
Prefix Query
The below sample responds with a list of documents in which the name field contains the text that starts with the given prefix. For example, Air.
Curl Request
curl -XPOST -H "Content-Type: application/json" -u <username>:<password> \ http://localhost:8094/api/index/DemoIndex/query -d '{ "fields" : ["name"], "query": { "field": "name", "prefix": "glasgow" } }'
Curl Response
{ "status":{ "total":1, "failed":0, "successful":1 }, "request":{ "query":{ "prefix":"glasgow", "field":"name" }, "size":10, "from":0, "highlight":null, "fields":["name"], "facets":null, "explain":false, "sort":["-_score"], "includeLocations":false, "search_after":null, "search_before":null }, "hits":[ { "index":"DemoIndex_76059e8b3887351c_4c1c5584", "id":"hotel_10138", "score":6.026769086106564, "sort":["_score"], "fields":{"_$c":"hotel"} } ], "total_hits":1, "max_score":6.026769086106564, "took":181596318, "facets":null }
Regex Query
The below sample responds with a list of documents in which the name field contains the text in the given form of a regular expression. For example, airport.
Curl Request
curl -XPOST -H "Content-Type: application/json" -u <username>:<password> \ http://localhost:8094/api/index/DemoIndex/query -d '{ "query":{ "field":"name","regexp":"a[h-i]r[o-p]+ort"} }'
Curl Response
{ "status":{ "total":1, "failed":0, "successful":1 }, "request":{ "query":{ "regexp":"a[h-i]r[o-p]+ort", "field":"name"}, "size":10, "from":0, "highlight":null, "fields":null, "facets":null, "explain":false, "sort":["-_score"], "includeLocations":false, "search_after":null, "search_before":null }, "hits":[ { "index":"DemoIndex_580e3ee6ba3ac900_4c1c5584", "id":"hotel_15913", "score":5.0166026709347635, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_580e3ee6ba3ac900_4c1c5584", "id":"hotel_37887", "score":4.486985781600578, "sort":["_score"], "fields":{"_$c":"hotel"} } ], "total_hits":2, "max_score":5.0166026709347635, "took":64912635, "facets":null }
Wildcard Query
The below sample responds with a list of documents in which the country field contains the name that starts with f and ends with ce. For example, france.
Curl Request
curl -XPOST -H "Content-Type: application/json" -u <username>:<password> \ http://localhost:8094/api/index/DemoIndex/query -d '{ "size":10, "from":10, "ctl":{"timeout":30}, "query":{ "wildcard":"f*ce", "field":"country" } }'
Curl Response
{ "status":{ "total":1, "failed":0, "successful":1 }, "request":{ "query":{ "wildcard":"f*ce", "field":"country" }, "size":10, "from":10, "highlight":null, "fields":null, "facets":null, "explain":false, "sort":["-_score"], "includeLocations":false, "search_after":null, "search_before":null }, "hits":[ { "index":"DemoIndex_580e3ee6ba3ac900_4c1c5584", "id":"hotel_21850", "score":6.175990572936377, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_580e3ee6ba3ac900_4c1c5584", "id":"hotel_21872", "score":6.175990572936377, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_580e3ee6ba3ac900_4c1c5584", "id":"hotel_24536", "score":6.175990572936377, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_580e3ee6ba3ac900_4c1c5584", "id":"hotel_21837", "score":6.175990572936377, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_580e3ee6ba3ac900_4c1c5584", "id":"hotel_21725", "score":6.175990572936377, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_580e3ee6ba3ac900_4c1c5584", "id":"hotel_21846", "score":6.175990572936377, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_580e3ee6ba3ac900_4c1c5584", "id":"hotel_40662", "score":6.175990572936377, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_580e3ee6ba3ac900_4c1c5584", "id":"hotel_35857", "score":6.175990572936377, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_580e3ee6ba3ac900_4c1c5584", "id":"hotel_21855", "score":6.175990572936377, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_580e3ee6ba3ac900_4c1c5584", "id":"hotel_21669","score":6.175990572936377, "sort":["_score"], "fields":{"_$c":"hotel"} } ], "total_hits":141, "max_score":6.175990572936377, "took":49997068, "facets":null }
Query String Query
The below sample responds with a list of documents in which the name field contains the text that starts with air and the country field contains the name france.
Curl Request
The name field prefixed with air and the country field contains france.
curl -XPOST -H "Content-Type: application/json" -u <username>:<password> \ http://localhost:8094/api/index/DemoIndex/query -d '{ "query": { "query": "+name:air* +country:france" } }'
Curl Response
{ "status":{ "total":1, "failed":0, "successful":1 }, "request":{ "query":{ "query":"+name:air* +country:france" }, "size":10, "from":0, "highlight":null, "fields":null, "facets":null, "explain":false, "sort":["-_score"], "includeLocations":false, "search_after":null, "search_before":null }, "hits":[ { "index":"DemoIndex_580e3ee6ba3ac900_4c1c5584", "id":"hotel_19199", "score":3.166810600229102, "sort":["_score"], "fields":{"_$c":"hotel"} } ], "total_hits":1, "max_score":3.166810600229102, "took":593704, "facets":null }
Curl Request
The below sample responds with a list of documents in which the name field is prefixed with air, and the country field contains anything other than france.
curl -XPOST -H "Content-Type: application/json" -u <username>:<password> \ http://localhost:8094/api/index/DemoIndex/query -d '{ "query": { "query": "+name:air* -country:france" } }'
Curl Response
{ "status":{ "total":1, "failed":0, "successful":1 }, "request":{ "query":{ "query":"+name:air* -country:france" }, "size":10, "from":0, "highlight":null, "fields":null, "facets":null, "explain":false, "sort":["-_score"], "includeLocations":false, "search_after":null, "search_before":null }, "hits":[ { "index":"DemoIndex_580e3ee6ba3ac900_4c1c5584", "id":"airportDoc", "score":1.0997886699799067, "sort":["_score"], "fields":{"_$c":"airline"} }, { "index":"DemoIndex_580e3ee6ba3ac900_4c1c5584", "id":"hotel_16687", "score":1.0997886699799067, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_580e3ee6ba3ac900_4c1c5584", "id":"hotel_15913", "score":0.9524449440916017, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_580e3ee6ba3ac900_4c1c5584", "id":"hotel_37887", "score":0.8518926457255296, "sort":["_score"], "fields":{"_$c":"hotel"} } ], "total_hits":4, "max_score":1.0997886699799067, "took":537291, "facets":null }
Boosting the score
The below sample responds with a list of documents in which both the type field and name field contains the term airport but the relevancy of the specified term, for example, airport is more in the name field than the type field.
Curl Request
curl -XPOST -H "Content-Type: application/json" -u <username>:<password> \ http://localhost:8094/api/index/DemoIndex/query -d '{ "query": { "disjuncts":[ { "field":"city", "match": "glossop", "boost":5 }, { "field":"title", "match":"glossop" } ] }'
Curl Response
{ "status":{ "total":1, "failed":0, "successful":1 }, "request":{ "query":{ "disjuncts":[ { "match":"glossop", "field":"city", "boost":5, "prefix_length":0, "fuzziness":0, "operator":"or" }, { "match":"glossop", "field":"title", "prefix_length":0, "fuzziness":0, "operator":"or" } ], "min":0 }, "size":10, "from":0, "highlight":null, "fields":null, "facets":null, "explain":false, "sort":["-_score"], "includeLocations":false, "search_after":null, "search_before":null }, "hits":[ { "index":"DemoIndex_41b91e3a4134783d_4c1c5584", "id":"hotel_10161", "score":11.390925020776914, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_41b91e3a4134783d_4c1c5584", "id":"hotel_10158", "score":11.390925020776914, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_41b91e3a4134783d_4c1c5584", "id":"hotel_10160", "score":11.390925020776914, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_41b91e3a4134783d_4c1c5584", "id":"hotel_10159", "score":0.9131614588308529, "sort":["_score"], "fields":{"_$c":"hotel"} } ], "total_hits":4, "max_score":11.390925020776914, "took":339907764, "facets":null }
Conjuncts and Disjuncts
The below sample responds with a list of documents in which the name field contains the text that starts with air and the testing field is not false, and the country field does not contain france.
Curl Request
curl -XPOST -H "Content-Type: application/json" -u <username>:<password> \ http://localhost:8094/api/index/DemoIndex/query -d '{ "query": { "conjuncts": [ { "query": "+name:air*" }, { "disjuncts": [ {"query": "+testing:false"}, {"query": "country:france"} ] } ] } }'
Curl Response
{ "status":{ "total":1, "failed":0, "successful":1 }, "request":{ "query":{ "conjuncts":[ { "query":"+name:air*" }, { "disjuncts":[ { "query":"+testing:false" }, { "query":"country:france" } ], "min":0 } ] }, "size":10, "from":0, "highlight":null, "fields":null, "facets":null, "explain":false, "sort":["-_score"], "includeLocations":false, "search_after":null, "search_before":null }, "hits":[ { "index":"DemoIndex_580e3ee6ba3ac900_4c1c5584", "id":"hotel_19199", "score":1.8423829850895888, "sort":["_score"], "fields":{"_$c":"hotel"} } ], "total_hits":1, "max_score":1.8423829850895888, "took":81919182, "facets":null }
Boolean Query
Curl Request
curl -XPOST -H "Content-Type: application/json" -u <username>:<password> \ http://localhost:8094/api/index/DemoIndex/query -d '{ "query" : { "must": { "conjuncts":[{"field":"type", "match": "hotel"}, {"field":"country", "match": "france"}] }, "must_not": { "disjuncts": [{"field":"country", "match": "united states"}] }, "should": { "disjuncts": [{"field":"free_parking", "bool": true}] } } }'
Curl Response
{ "status":{ "total":1, "failed":0, "successful":1 }, "request":{ "query":{ "must":{ "conjuncts":[ { "match":"hotel", "field":"type", "prefix_length":0, "fuzziness":0, "operator":"or" }, { "match":"france", "field":"country", "prefix_length":0, "fuzziness":0, "operator":"or" } ] }, "should":{ "disjuncts":[ { "bool":true, "field":"free_parking" } ], "min":0 }, "must_not":{ "disjuncts":[ { "match":"united states", "field":"country", "prefix_length":0, "fuzziness":0, "operator":"or" } ], "min":0 } }, "size":10, "from":0, "highlight":null, "fields":null, "facets":null, "explain":false, "sort":["-_score"], "includeLocations":false, "search_after":null, "search_before":null }, "hits":[ { "index":"DemoIndex_76059e8b3887351c_4c1c5584", "id":"hotel_21720", "score":9.381573976364228, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_76059e8b3887351c_4c1c5584", "id":"hotel_21849", "score":9.381573976364228, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_76059e8b3887351c_4c1c5584", "id":"hotel_20419", "score":9.381573976364228, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_76059e8b3887351c_4c1c5584", "id":"hotel_21725", "score":9.381573976364228, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_76059e8b3887351c_4c1c5584", "id":"hotel_20422", "score":9.381573976364228, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_76059e8b3887351c_4c1c5584", "id":"hotel_21852", "score":9.381573976364228, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_76059e8b3887351c_4c1c5584", "id":"hotel_21657", "score":9.381573976364228, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_76059e8b3887351c_4c1c5584", "id":"hotel_21838", "score":9.381573976364228, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_76059e8b3887351c_4c1c5584", "id":"hotel_21723", "score":9.381573976364228, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_76059e8b3887351c_4c1c5584", "id":"hotel_1359", "score":9.381573976364228, "sort":["_score"], "fields":{"_$c":"hotel"} } ], "total_hits":140, "max_score":9.381573976364228, "took":116599230, "facets":null }
Date Range Query
This example needs an index created on beer-sample bucket. |
The below sample responds with a list of documents in which the updateOn field contains the date in between the start date and end date, both inclusive.
Curl Request
curl -XPOST -H "Content-Type: application/json" -u <username>:<password> \ http://localhost:8094/api/index/<beer-sample-index-name>/query -d '{ "query": { "start": "2001-01-01","inclusive_start": true,"end": "2021-08-11","inclusive_end": true,"field": "updated" } }'
Curl Response
{ "status": { "total": 1, "failed": 0, "successful": 1 }, "request": { "query": { "start": "2001-01-01T00:00:00Z", "end": "2021-08-11T00:00:00Z", "inclusive_start": true, "inclusive_end": true, "field": "updated" }, "size": 10, "from": 0, "highlight": null, "fields": null, "facets": null, "explain": false, "sort": ["-_score"], "includeLocations": false, "search_after": null, "search_before": null }, "hits": [ { "index": "bix_3a91439dbf1df8ee_4c1c5584", "id": "devil_s_canyon", "score": 0.716641821033877, "sort": ["_score"] }, { "index": "bix_3a91439dbf1df8ee_4c1c5584", "id": "abita_brewing_company-strawberry", "score": 0.716641821033877, "sort": ["_score"] }, ... { "index": "bix_3a91439dbf1df8ee_4c1c5584", "id": "cains-2008_culture_beer", "score": 0.716641821033877, "sort": ["_score"] }, { "index": "bix_3a91439dbf1df8ee_4c1c5584", "id": "element_brewing_company-dark_element", "score": 0.716641821033877, "sort": ["_score"] } ], "total_hits": 7303, "max_score": 0.716641821033877, "took": 1447295, "facets": null }
Numeric Range Query
The below sample responds with a list of documents in which the id field is between the specified maximum (max) and minimum (min) values.
Curl Request
curl -XPOST -H "Content-Type: application/json" -u <username>:<password> \ http://localhost:8094/api/index/DemoIndex/query -d '{ "query":{ "field":"id", "max": 8100, "min": 8080 } }'
Curl Response
{ "status":{ "total":1, "failed":0, "successful":1 }, "request":{ "query":{ "min":10025, "max":10030, "field":"id" }, "size":10, "from":0, "highlight":null, "fields":null, "facets":null, "explain":false, "sort":["-_score"], "includeLocations":false, "search_after":null, "search_before":null }, "hits":[ { "index":"DemoIndex_580e3ee6ba3ac900_4c1c5584", "id":"hotel_10025", "score":0.922656832718857, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_580e3ee6ba3ac900_4c1c5584", "id":"hotel_10026", "score":0.922656832718857, "sort":["_score"], "fields":{"_$c":"hotel"} } ], "total_hits":2, "max_score":0.922656832718857, "took":62274941, "facets":null }
DOC_ID QUERY
The below sample responds with a list of documents in which the document ID is any of the specified ids. For example, airline_10 and airline_10123.
Curl Request
curl -XPOST -H "Content-Type: application/json" -u <username>:<password> \ http://localhost:8094/api/index/DemoIndex/query -d '{ "query":{ "ids":["airline_10", "airline_10123"] } }'
Curl Response
{ "status":{ "total":1, "failed":0, "successful":1 }, "request":{ "query":{ "ids":["airline_10","airline_10123"] }, "size":10, "from":0, "highlight":null, "fields":null, "facets":null, "explain":false, "sort":["-_score"], "includeLocations":false, "search_after":null, "search_before":null }, "hits":[ { "index":"DemoIndex_580e3ee6ba3ac900_4c1c5584", "id":"airline_10", "score":1, "sort":["_score"], "fields":{"_$c":"airline"} }, { "index":"DemoIndex_580e3ee6ba3ac900_4c1c5584", "id":"airline_10123", "score":1, "sort":["_score"], "fields":{"_$c":"airline"} } ], "total_hits":2, "max_score":1, "took":139708973, "facets":null }
Bounded Rectangle Query
The below sample responds with a list of documents in which the geolocation (geo) is bounded between the specified top_left and bottom_right.
Curl Request
curl -XPOST -H "Content-Type: application/json" -u <username>:<password> \ http://localhost:8094/api/index/DemoIndex/query -d '{ "query": { "field": "geo", "bottom_right": [-66.9326, 24.9493], "top_left": [-125.0011, 49.5904] } }'
Curl Response
{ "status":{ "total":1, "failed":0, "successful":1 }, "request":{ "query":{ "top_left":[-125.0011,49.5904], "bottom_right":[-66.9326,24.9493], "field":"geo" }, "size":10, "from":0, "highlight":null, "fields":null, "facets":null, "explain":false, "sort":["-_score"], "includeLocations":false, "search_after":null, "search_before":null }, "hits":[ { "index":"DemoIndex_76059e8b3887351c_4c1c5584", "id":"hotel_23634", "score":0.5583933812203372, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_76059e8b3887351c_4c1c5584", "id":"hotel_17932", "score":0.5583933812203372, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_76059e8b3887351c_4c1c5584", "id":"hotel_25325", "score":0.2575082889947619, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_76059e8b3887351c_4c1c5584", "id":"hotel_25155", "score":0.2575082889947619, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_76059e8b3887351c_4c1c5584", "id":"hotel_25263", "score":0.2575082889947619, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_76059e8b3887351c_4c1c5584", "id":"hotel_3785", "score":0.2575082889947619, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_76059e8b3887351c_4c1c5584", "id":"hotel_25302", "score":0.2575082889947619, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_76059e8b3887351c_4c1c5584", "id":"hotel_25195", "score":0.2575082889947619, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_76059e8b3887351c_4c1c5584", "id":"hotel_25161", "score":0.2575082889947619, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_76059e8b3887351c_4c1c5584", "id":"hotel_25119", "score":0.2575082889947619, "sort":["_score"], "fields":{"_$c":"hotel"} } ], "total_hits":361, "max_score":0.5583933812203372, "took":473390831, "facets":null }
Point Distance Query
The below sample responds with a list of documents in which the location specified as geolocation is in the proximity of the distance specified in distance field. A location is represented by means of longitude-latitude coordinate pairs.
Curl Request
curl -XPOST -H "Content-Type: application/json" -u <username>:<password> \ http://localhost:8094/api/index/DemoIndex/query -d '{ "from": 0, "size": 10, "query": { "location": { "lon": -2.235143, "lat": 53.482358 }, "distance": "1mi", "field": "geo" }, "sort": [ { "by": "geo_distance", "field": "geo", "unit": "mi", "location": { "lon": -2.235143, "lat": 53.482358 } } ] }'
Curl Response
{ "status":{ "total":1, "failed":0, "successful":1 }, "request":{ "query":{ "location":[-2.235143,53.482358], "distance":"1mi", "field":"geo" }, "size":10, "from":0, "highlight":null, "fields":null, "facets":null, "explain":false, "sort":[ { "by":"geo_distance", "field":"geo", "location":{ "lat":53.482358, "lon":-2.235143 }, "unit":"mi" } ], "includeLocations":false, "search_after":null, "search_before":null }, "hits":[ { "index":"DemoIndex_41b91e3a4134783d_4c1c5584", "id":"hotel_17413", "score":1.2317379157866246, "sort":[" \u0001?U]S\\.e\u0002_"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_41b91e3a4134783d_4c1c5584", "id":"hotel_17414", "score":1.2317379157866246, "sort":[" \u0001?Z\u0000./\u0007Q\u0012\t"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_41b91e3a4134783d_4c1c5584", "id":"hotel_17415", "score":1.2317379157866246, "sort":[" \u0001?lg6,\u003c\u000cIL"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_41b91e3a4134783d_4c1c5584", "id":"hotel_17416", "score":1.2317379157866246, "sort":[" \u0001?r\u003cw\u0005GZ\u0005\u001f"], "fields":{"_$c":"hotel"} } ], "total_hits":4, "max_score":1.2317379157866246, "took":126456906, "facets":null }
Date Range Facets Query
This example needs an index created on beer-sample bucket. |
Curl Request
curl -XPOST -H "Content-Type: application/json" -u <username>:<password> \ http://localhost:8094/api/index/<beer-sample-index-name>/query -d '{ "query": { "field": "style", "term": "beer" }, "facets": { "types": { "size": 10, "field": "updated", "date_ranges": [ { "name": "old", "end": "2011-01-01" }, { "name": "new", "start": "2011-01-02" } ] } } }'
Curl Response
{ "status": { "total": 1, "failed": 0, "successful": 1 }, "request": { "query": { "term": "beer", "field": "style" }, "size": 10, "from": 0, "highlight": null, "fields": null, "facets": { "types": { "size": 10, "field": "updated", "date_ranges": [ { "end": "2011-01-01", "name": "old", "start": "0001-01-01T00:00:00Z" }, { "end": "0001-01-01T00:00:00Z", "name": "new", "start": "2011-01-02" } ] } }, "explain": false, "sort": [ "-_score" ], "includeLocations": false, "search_after": null, "search_before": null }, "hits": [ { "index": "bix_3a91439dbf1df8ee_4c1c5584", "id": "erie_brewing_company-derailed_black_cherry_ale", "score": 3.8396833650222075, "sort": ["_score"] }, { "index": "bix_3a91439dbf1df8ee_4c1c5584", "id": "smuttynose_brewing_co-smuttynose_pumpkin_ale", "score": 3.8396833650222075, "sort": ["_score"] }, ... { "index": "bix_3a91439dbf1df8ee_4c1c5584", "id": "warwick_valley_wine_co-doc_s_hard_apple_cider", "score": 3.8396833650222075, "sort": ["_score"] } ], "total_hits": 86, "max_score": 3.8396833650222075, "took": 155002, "facets": { "types": { "field": "updated", "total": 86, "missing": 0, "other": 0, "date_ranges": [ { "name": "old", "end": "2011-01-01T00:00:00Z", "count": 81 }, { "name": "new", "start": "2011-01-02T00:00:00Z", "count": 5 } ] } } }
Numeric Range facet
The below sample is to fetch the top 10 hotels based on the ratings given by the customers.
-
Type Mapping ⇒ type:hotel
-
child-field: reviews.ratings.Service
-
Analyzer: standard
Curl Request
curl -XPOST -H "Content-Type: application/json" -u <username>:<password> \ http://localhost:8094/api/index/DemoIndex/query -d '{ "query": { "field": "reviews.content", "term": "good" }, "facets": { "types": { "size": 10, "field": "reviews.ratings.Service", "numeric_ranges": [ { "name": "Awesome", "min": 5 }, { "name": "Good", "max": 4 }, { "name": "Avg", "max": 3 }, { "name": "Poor", "max": 2 }, { "name": "Bad", "max": 1 } ] } } }'
Curl Response
{ "status":{ "total":1, "failed":0, "successful":1 }, "request":{ "query":{ "term":"good", "field":"reviews.content" }, "size":10, "from":0, "highlight":null, "fields":null, "facets":{ "types":{ "size":10, "field":"reviews.ratings.Service", "numeric_ranges":[ { "name":"Awesome", "min":5 }, { "name":"Good", "max":4 }, { "name":"Avg", "max":3 }, { "name":"Poor", "max":2 }, {"name":"Bad", "max":1 } ] } }, "explain":false, "sort":["-_score"], "includeLocations":false, "search_after":null, "search_before":null }, "hits":[ { "index":"DemoIndex_41b91e3a4134783d_4c1c5584", "id":"hotel_15134", "score":1.608775098615459, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_41b91e3a4134783d_4c1c5584", "id":"hotel_3491", "score":1.5929246603757872, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_41b91e3a4134783d_4c1c5584", "id":"hotel_9062", "score":1.3135594084905977, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_41b91e3a4134783d_4c1c5584", "id":"hotel_25261", "score":1.199110122199631, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_41b91e3a4134783d_4c1c5584", "id":"hotel_15976", "score":1.0384598347067433, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_41b91e3a4134783d_4c1c5584", "id":"hotel_26142", "score":1.029912757807367, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_41b91e3a4134783d_4c1c5584", "id":"hotel_3629", "score":0.9683687809619517, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_41b91e3a4134783d_4c1c5584", "id":"hotel_5848", "score":0.9479798384018671, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_41b91e3a4134783d_4c1c5584", "id":"hotel_16443", "score":0.9479797868886458, "sort":["_score"], "fields":{"_$c":"hotel"} }, { "index":"DemoIndex_41b91e3a4134783d_4c1c5584", "id":"hotel_2814", "score":0.9288267057398083, "sort":["_score"], "fields":{"_$c":"hotel"} } ], "total_hits":656, "max_score":1.608775098615459, "took":343585473, "facets":{ "types": { "field":"reviews.ratings.Service", "total":1871, "missing":3, "other":0, "numeric_ranges":[ { "name":"Good", "max":4,"count":658 }, { "name":"Awesome", "min":5, "count":579 }, { "name":"Avg", "max":3, "count":366 }, { "name":"Poor", "max":2, "count":219 }, { "name":"Bad", "max":1, "count":49 } ] } } }