PHPackages                             somardigital/silverstripe-discoverer-elasticsearch - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Search &amp; Filtering](/categories/search)
4. /
5. somardigital/silverstripe-discoverer-elasticsearch

ActiveSilverstripe-vendormodule[Search &amp; Filtering](/categories/search)

somardigital/silverstripe-discoverer-elasticsearch
==================================================

Elasticsearch adaptor for silverstripe/silverstripe-discoverer

1.0.0(1w ago)00BSD-3-ClausePHPPHP ^8.3CI passing

Since Jul 21Pushed todayCompare

[ Source](https://github.com/somardigital/silverstripe-discoverer-elasticsearch)[ Packagist](https://packagist.org/packages/somardigital/silverstripe-discoverer-elasticsearch)[ RSS](/packages/somardigital-silverstripe-discoverer-elasticsearch/feed)WikiDiscussions main Synced today

READMEChangelog (1)Dependencies (6)Versions (2)Used By (0)

Silverstripe Discoverer Elasticsearch
=====================================

[](#silverstripe-discoverer-elasticsearch)

Elasticsearch adaptor for [`silverstripe/silverstripe-discoverer`](https://github.com/silverstripeltd/silverstripe-discoverer).

Installation
------------

[](#installation)

```
composer require somardigital/silverstripe-discoverer-elasticsearch
```

Configuration
-------------

[](#configuration)

Set an API key and either an endpoint or Elastic Cloud ID:

```
ELASTIC_SEARCH_ENDPOINT="https://localhost:9200"
ELASTIC_SEARCH_CLOUD_ID="" # Alternative to ELASTIC_SEARCH_ENDPOINT
ELASTIC_SEARCH_API_KEY=""
ELASTIC_SEARCH_API_ID="" # Only required if API Key does not contain API ID in base64 encoded string
ELASTIC_SEARCH_INDEX_PREFIX="dev"
```

`ELASTIC_SEARCH_INDEX_PREFIX` is optional. If set, Discoverer index suffixes are queried as `-`.

Usage
-----

[](#usage)

Use Discoverer as usual:

```
use SilverStripe\Discoverer\Query\Query;
use SilverStripe\Discoverer\Service\SearchService;

$query = Query::create('silverstripe');
$query->addSearchFields(['title' => 2, 'content']);
$query->addResultField('title', 100, true);
$query->setPagination(10, 0);

$results = SearchService::create()->search($query, 'content');
```

Configure precision profiles if you want `Query::setPrecision()` to tune Elasticsearch `multi_match` behaviour per query:

```
Somar\DiscovererElasticsearch\Processors\SearchRequestProcessor:
  precision_options:
    - precision: 1
      operator: or
      fuzziness: AUTO:3,6
      minimum_should_match: '1
