DSL query API endpoints
On this page:
Get results for a DSL query
Summary
Execute a DSL query.
GET api/v1.3/search/dsl
Description
Execute a DSL query to perform a search.
Parameters
| Parameter | Description | Required | Type |
|---|---|---|---|
|
search |
The P4 Search DSL query URL encoded. |
No |
string |
|
from |
The pagination start position. |
No |
integer |
|
size |
The pagination size. For example, when set to 10, you will only see 10 results per page. |
No |
integer |
Example usage
curl -X GET --location "http://localhost:1601/api/v1.3/search/dsl?search=ext%3A+mp3+wav+%2Bmodel%3A+asset"
-H "Authorization: Bearer <JWT>" \
-H "Content-Type: application/json"
P4 Search responds with:
{
"took": 174,
"timed_out": false,
"_shards": {
"failed": 0.0,
"successful": 1.0,
"total": 1.0,
"skipped": 0.0
},
"hits": {
"total": {
"relation": "eq",
"value": 847
},
"hits": [
{
"_index": "index-perforce1-000001",
"_id": "change-917081",
"_score": null,
"_source": {
"type": "change",
"change": 917081,
"date": 1179756208000,
"client": "tony-barney-dev",
"user": "tony",
"restricted": false,
"description": "Add P4Perl 3.5943 sources to depot as basis for the first
productized version of P4Perl.
"depotFile": "//depot/main/p4-perl/...",
"indexDate": 0
},
"sort": [
-9223372036854775808
]
}, ...... ],
"max_score": null
},
"terminated_early": false
}
If a request fails
<error code>:
-
400 DSL parsing error or Elasticsearch bad requests
-
401 Unauthorized
Get autocomplete suggestions for a DSL keyword
Summary
Get a list of values for a DSL keyword.
GET api/v1.3/autocomplete/{term}
Description
Get a list of values for a DSL keyword to perform a search.
Parameters
| Parameter | Description | Required | Type |
|---|---|---|---|
|
term |
The DSL keyword for which you want autocomplete values. For example, user. |
Yes |
string |
|
prefix |
The DSL value prefix. |
No |
string |
|
size |
The size of the dropdown list. For example, when set to 10, you will only see 10 values in the dropdown list. |
No |
integer |
|
sort |
The order in which you want to sort the DSL values. The following values are accepted:
|
No |
sort |
Example usage
curl -X GET --location "http://localhost:1601/api/v1.3/autocomplete/user"
-H "Content-Type: application/json" \
-H "Authorization: Bearer <JWT>"
P4 Search responds with:
{
"status": {
"code": 200,
"message": "OK"
},
"data": [
"Font",
"Circle",
"Electric blue",
"Pattern",
"Logo",
"Symbol",
"Graphics",
"Symmetry",
"Rectangle",
"Brand"
]
}
If a request fails
<error code>:
-
400 DSL term error or prefix limits.
-
401 Unauthorized
Populate DSL autocomplete cache
Summary
Query Elasticsearch for DSL values and populate cache.
PUT api/v1.3/autocomplete/{term}
Description
Query Elasticsearch for DSL values and populate cache.
Parameters
| Parameter | Description | Required | Type |
|---|---|---|---|
|
term |
The DSL keyword for which you want autocomplete values. For example, user. |
Yes |
string |
Example usage
curl -X PUT --location "http://localhost:1601/api/v1.3/autocomplete/detected"
-H "Content-Type: application/json" \
-H "Authorization: Bearer <JWT>"
P4 Search responds with:
{
"status": {
"code": 200,
"message": "OK"
},
"data": [
"total": 39
]
}
If a request fails
<error code>:
-
400 DSL term error or prefix limits.
-
401 Unauthorized
Clear DSL autocomplete cache
Summary
Clear all cached DSL values for a term.
DELETE api/v1.3/autocomplete/{term}
Description
Clear all cached DSL values for the specified term.
Parameters
| Parameter | Description | Required | Type |
|---|---|---|---|
|
term |
The DSL keyword for which you want autocomplete values. For example, user. |
Yes |
string |
Example usage
curl -X DELETE --location "http://localhost:1601/api/v1.3/autocomplete/user"
-H "Content-Type: application/json" \
-H "Authorization: Bearer <JWT>"
P4 Search responds with:
{
"status": {
"code": 200,
"message": "OK"
}
}
If a request fails
<error code>:
-
400 DSL term error or prefix limits.
-
401 Unauthorized
To learn more about the DSL API endpoint, see Access the Swagger REST API.