Search / Whats-On
The TicketSource event listings ("whats on"), powered by Meilisearch
Infrastructure
AWS
- Ubuntu Instance (Meilisearch)
- Security Groups:
- Meilisearch (HTTPS TCP 7700 listening on 0.0.0.0)
- SSH from RDP
- Security Groups:
- Target Group (meilisearch-target-group)
- Target port: HTTP:7700
- Health Check:
/health(Meilisearch's health endpoint)
- Load Balancer (Meilisearch-load-balancer)
- Security Groups:
Cloudflare
- ticketsource.com zone DNS
- CNAME search.ticketsource.com to AWS load balancer
Architecture
Indexes
| Index | Description |
|---|---|
| events_PROD | The production index |
| events_DEV_SW | Simon Wilsher dev index |
| events_DEV_CF | Christian Freear dev index |
| events_DEV_CW | Chris Walton dev index |
Index Settings
json
{
"displayedAttributes": [
"*"
],
"searchableAttributes": [
"*"
],
"filterableAttributes": [
"_geo",
"promoterId",
"eventId",
"venueId",
"performanceId",
"genre",
"location",
"venue",
"category",
"timestamp",
"filterTimestamp",
"deletionTimestamp"
],
"sortableAttributes": [
"_geo",
"filterTimestamp",
"timestamp"
],
"rankingRules": [
"words",
"typo",
"proximity",
"attribute",
"sort",
"exactness"
],
"stopWords": [],
"nonSeparatorTokens": [],
"separatorTokens": [],
"dictionary": [],
"synonyms": {},
"distinctAttribute": null,
"proximityPrecision": "byWord",
"typoTolerance": {
"enabled": true,
"minWordSizeForTypos": {
"oneTypo": 5,
"twoTypos": 9
},
"disableOnWords": [],
"disableOnAttributes": [],
"disableOnNumbers": false
},
"faceting": {
"maxValuesPerFacet": 100,
"sortFacetValuesBy": {
"*": "alpha"
}
},
"pagination": {
"maxTotalHits": 1000
},
"embedders": {},
"searchCutoffMs": null,
"localizedAttributes": null,
"facetSearch": true,
"prefixSearch": "indexingTime"
}Keys
| Key Name | Actions | Indexes |
|---|---|---|
| Production Admin | documents.*settings.*stats.get | events_PROD |
| Production Search | search | events_PROD |
| Production Document CRUD | documents.* | events_PROD |
| Dev SWilsher Search | search | events_DEV_SW |
| Dev SWilsher Document CRUD | documents.* | events_DEV_SW |
| Dev CFreear Search | search | events_DEV_CF |
| Dev CFreear Document CRUD | documents.* | events_DEV_CF |
| Dev CWalton Search | search | events_DEV_CW |
| Dev CWalton Document CRUD | documents.* | events_DEV_CW |
API
Base URL
https://search.ticketsource.comAuthentication
Set relevant API key as bearer token
Endpoints
Indexes
GET All
https://search.ticketsource.com/indexesGET index settings
https://search.ticketsource.com/indexes/events_PROD/settingsUpdate (PATCH) Settings
https://search.ticketsource.com/indexes/events_PROD/settingsExample Body:
json
{
"filterableAttributes": [
"_geo",
"promoterId",
"eventId",
"venueId",
"performanceId",
"genre",
"location",
"venue",
"category",
"timestamp",
"filterTimestamp",
"deletionTimestamp"
]
}TIP
Use content-type: application/json for json body content