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?

DEMO: Autosuggest

Recipe search widget
typesense.org

How does it work?

  • Search as you type
  • Performance. Cost. Ease-of use

About Typesense

  • 6 years old
  • C++
  • GPLv3

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

😐

Is that it?

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

DEMO: Instant Search

Echidna Sewing store
echidnasewing.com.au

DEMO: Instant Search

Find xkcd
findxkcd.com

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

Questions?

Thanks! (╯°□°)╯

  • Slack: @null
  • github.com/elliot-sawyer
  • linkedin.com/in/elliot-sawyer/
  • sawyer.nz/contact
Back to main site