Using Search on the Platform
The platform search and indexing feature uses Elasticsearch, a search engine based on Apache Lucene. It is robust, and allows fast indexing and responsive updating. It's an extremely popular tool in very broad use—a scalable search solution that uses JSON messaging over an HTTP interface with a native Java API.
The Search feature looks in the resource name and description to find text matching the search string.
On the platform, search results vary according to the user's status. If the user is not logged in, search results are limited to information about public APIs and public apps. If the user logs in, and is a member of one or more API Scope Groups or app teams, search results will include information about the apps and APIs that the user is authorized to access.
If you want to search for a part of a word, include an asterisk at the beginning or end of the word in place of the letters that are missing.
When using the Search operation, use encoding for spaces between words; for example, ACME%20Payments for ACME Payments.
The table below provides some examples of search operators you can use to narrow down your search. If you use operators, you must also encode the spaces between the search word or words and the operators.
This search expression... | Gives these search results... |
---|---|
Payment | Any API name or description that includes the exact word Payment. Pay or Payments would not be included in the search results. |
Pay* | Any API name or description that includes a word beginning with these letters; for example, Payment, Payments, Paying |
*ment | Anything including words that end in the matching fragment; for example, instalment, payment. |
"Payment | Any API name or description that includes the partial endpoint without double quotes. For example, "Payment will give the search result as "Search failed due to an invalid search expression". |
buy AND sell | Results include both words, buy and sell, in any order, not necessarily next to each other. |
buy OR sell | Results include either buy or sell. |
buy -sell | Results include buy but not sell. |
Sample Search URLs
The examples below, using the GET /api/search operation, show how search operators can be used to fine-tune a search.
#1 Sorts in ascending order:
https://{hostname}/api/search?count=20&start=0&q=ACME&SORT=asc
#2 Returns the 20 most recent entries that include the word ACME:
https://{hostname}/api/search?count=2o&start=0&q=ACME&sortBy=com.soa.sort.order.updated
#3 Returns the two entries with the highest rating that include the word ACME:
https://{hostname}/api/search?count=2&start=0&q=ACME&sortBy=com.soa.sort.order.rating
#4 Returns search results for all APIs that include the word Payment:
https://{hostname}/api/search?count=20&start=0&q=type:API%20AND%20Payment
#5 Returns the list of users
https://{hostname}/api/search?q=type:user
#6 Returns list of apps that have the word "game" in their name or metadata (such as tags)
https://{hostname}/api/search?q=type:app AND game
#7 Returns information about a group with a specific unique ID
https://{hostname}/api/search?q=type:group AND d37990e2-800a-4963-b3b9-908b6a87dbcc.acmepaymentscorp
#8 Returns information based on a specific unique ID
For an example showing the results of this query in Postman, see GET /api/search sample response: Postman.
https://{hostname}/api/search?q=d37990e2-800a-4963-b3b9-908b6a87dbcc.acmepaymentscorp