fromholdio/silverstripe-sherlock

A SilverStripe module that enables you to build a project-specific 'search engine' with fulltext search with relevance and weighting.

Installs: 631

Dependents: 1

Suggesters: 0

Security: 0

Stars: 2

Watchers: 3

Forks: 1

Open Issues: 0

Type:silverstripe-vendormodule

1.2.0 2023-05-31 05:38 UTC

This package is auto-updated.

Last update: 2024-03-30 00:17:38 UTC


README

A SilverStripe module that enables you to build a project-specific "search engine" with fulltext search with relevance and weighting.

This module by itself does not do much - it provides the framework to implement a 'search engine' specific to your project.

See fromholdio/silverstripe-sherlock-pages for an example implementation, which uses this core module and implements a search engine for all Pages, with sorting by relevance, and weights matches to Title and MenuTitle higher than matches within content.

Apologies, I haven't had the chance to write much documentation for this yet. See the source of the above-referenced module, or submit an issue with any question you may have in the meantime.

At a high level this aims to:

  • Fulltext search
  • Use fulltext relevance scores and order results by this
  • Create and search multiple fulltext indexes in one search, add different weighting to each index's relevance score and order results accordingly
  • Define search fields that go directly to the first found result if matched (say, if the search phrase is an exact page/dataobject title, or urlsegment, match - totally optional)
  • Maintain search logs for future analytics/reporting
  • Provide idempotent search engine build task, to maintain entries

Requirements

Recommended

Installation

composer require fromholdio/silverstripe-sherlock

Detail

Detail and usage examples to come.

See fromholdio/silverstripe-sherlock-pages for usage example.

To Do

  • Make use of the search logs in the form of intelligent/interesting search analytics reports
  • Only require silverstripe-framework rather than silverstripe-cms
  • Thorough documentation

Thanks & Acknowledgements

Thanks to these most excellent projects for providing inspiration