studiomitte/typesense-search

There is no license information available for the latest version (dev-main) of this package.

Installs: 0

Dependents: 0

Suggesters: 0

Security: 0

Stars: 1

Watchers: 3

Forks: 0

Open Issues: 0

Type:typo3-cms-extension

dev-main 2024-10-15 08:57 UTC

This package is auto-updated.

Last update: 2024-10-15 08:57:43 UTC


README

This extension provides an integration of typesense search engine into TYPO3 CMS. It is still in an early stage and not yet feature complete.

I am however where interested in feedback and contributions.

Features

  • Integration of InstantSearch for an awesome search experience
  • Facets
  • Proxy for hiding typesense endpoint
  • Custom filtering to use search for different scopes like
    • language
    • record types

What this extension does not provide

This extension is just in the beginning and is not yet a full alternative to other search extensions like solr.

  • No queue, no monitoring of records, only full indexing possible
  • No permission handling (records which are limited to user_groups)
  • No time checks (starttime, stoptime)

Setup

Installation

Install the extension by using composer req studiomitte/typesense-search. You then get also the dashboard at http://yourproject.ddev.site:8109/ with login API key ddev.

For testing, I suggest using ddev get kevinquillen/ddev-typesense to get a typesense instance running locally. For production, you should take a look at https://typesense.org/docs/guide/running-in-production.html#production-best-practices.

Configuration

Copy the settings.yaml from Resources/Private/Examples/settings.yaml to your site configuration and adjust it to your needs.

Especially important is the authentication part.

Indexing

There are 2 options supported how to index your records.

Sitemap for content

The following CLI call indexes a sitemap. Provide the site identifier as 1st argument and the URL as 2nd one.

# Use the pages sitemap generated by TYPO3
./bin/typo3 typesense:sitemap main 'https://www.domain.tld.com/sitemap.xml?sitemap=pages&cHash=....'

Custom indexing

Copy the example EXT:typesense_search/Resources/Private/Examples/TypesenseImportCommand.php to your site package/extension and adopt it your needs.

Don't forget to adopt the constants in the class to your needs!

Plugin & Templating

After indexing you can use the Search plugin to add the typeense instant search to your page.

Geosearch

If using a geosearch, you need to index the coordinates like this

$document['_geoloc'] = [$row['lat'], $row['lng']];

and provide a Google Maps API in the Search/Index.html template.