Supercharge your search with
Typesense
Elliot Sawyer, Senior Silverstripe Developer at Catalyst.Net
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
Open Source Alternative
to Solr
|________________|
\(•◡•)/
\ /
---
| |
|_|_
Actual ad: https://twitter.com/typesense/status/1702152406924980670
TL;DR 🤯
Typesense is a search engine for your website that does clever things much faster than anything else you've seen
What we'll talk about
- A little bit about the Typesense project
- Awesome things others have done with it
- Awesome things I have done with it
- How do you get started?
How does it work?
- Search as you type
- Performance. Cost. Ease-of use
About Typesense
- Free to use.
- SaaS hosting available
- "CDN for extremely fast search"
What you can do 🦸
- Search millions of records instantly
- Search as you type
- Multi-threaded + RAM = < ms responses
Benchmarks
Amount |
RAM |
Time |
2.2M Addresses |
--- |
<10 minutes |
2.2M Recipes |
900MB |
3.6 minutes |
28M Books |
14GB |
76 minutes |
250 concurrent search queries per second |
typesense.org/docs/overview/benchmarks
Features 💥
- Curated search results
- Synonyms
- Analytics
- Decentralised dashboard
Curated search results 🔝
- Make Silverstripe appear ahead of CMS
Curated search results 🔝
- Exclude Wordpress from CMS
Synonyms 🔄
- "Silverstripe", "Drupal", and "content management system" <=> "CMS".
Built-in analytics 🧐
- Popular queries
- "No-hit" queries
- Track how often a particular result is clicked on
Scoped search 🛡️
- Role-based access
- 1 user, 1 key, 1 collection
- 1 group, 1 key, 1 collection
Geospatial searches 🌐
- Radius, or within a polygon
- GIS applications, such as council plans, Homes.co.nz, etc
AI and machine-learning 🤖
- Adds context to results.
- Index-time calculations.
- LLM reads and summarises.
AI and machine-learning 🤖
- Image search.
- Audio / video transcriptions.
- Huge win for accessibility
- Perfect for Catalyst Cloud A100
catalystcloud.nz/about/news/catalyst-cloud-releases-nvidia-gpu-as-a-service
Key takeaways
- Easy to deploy
- Save on development time
- Performance and user experience
- Cost savings
And just for you ... a demo!
- Resene colour search from a spreadsheet
- Replaced NZ Post Address Finder using LINZ data
- Audiobook transcript search
sawyer.nz/demos
AWESOME
How do you get started?
Batteries included! 🔋
Getting started 🚀
Very simple JSON based schema:
```js
let schema = {
'name': 'companies',
'fields': [
{
'name': 'company_name',
'type': 'string',
'facet': false
},
{
'name': 'num_employees',
'type': 'int32',
'facet': false
},
{
'name': 'country',
'type': 'string',
'facet': true
}
],
'default_sorting_field': 'num_employees'
}
```
Automatic schema detection ✨
...or just let Typesense do it for you.
```js
{
"name": "companies",
"fields": [
{"name": ".*", "type": "auto" }
]
}
```
Field names are regex-based, and so are facets; can provide as much or little detail as you want
Automatic schema detection ✨
Disorganised or poorly structured data set
Typesense will still create a working collection for you.
More info about Typesense
- typesense.org/
- cloud.typesense.org/
- github.com/typesense/typesense
- github.com/algolia/instantsearch
- github.com/typesense/typesense-instantsearch-adapter
Thanks! (╯°□°)╯
- Slack: @null
- github.com/elliot-sawyer
- linkedin.com/in/elliot-sawyer/
- sawyer.nz/contact