OpenSearch
Use OpenSearch 2.x or 3.x with Sigmie — connect to local clusters or AWS OpenSearch Service. Every Sigmie feature works identically to Elasticsearch.
On this page
Sigmie supports OpenSearch 2.x and 3.x — including AWS OpenSearch Service — with the same API as Elasticsearch. You change one parameter and everything else continues to work.
Connect
Specify the engine type:
use Sigmie\Sigmie;use Sigmie\Enums\SearchEngineType; $sigmie = Sigmie::create( hosts: ['https://localhost:9200'], engine: SearchEngineType::OpenSearch, config: [ 'auth' => ['admin', 'MyStrongPass123!@#'], 'verify' => false, // self-signed cert in dev ]);
Supported versions
- OpenSearch 2.4 – 2.11
- OpenSearch 3.0+
- AWS OpenSearch Service
Sigmie adapts to the version automatically.
Semantic search
Define semantic fields the same way as with Elasticsearch:
use Sigmie\Mappings\NewProperties; $props = new NewProperties;$props->text('title')->semantic(dimensions: 384, api: 'embeddings');$props->text('content')->semantic(dimensions: 384, accuracy: 3, api: 'embeddings'); $sigmie->newIndex('articles')->properties($props)->create();
Sigmie configures OpenSearch’s KNN settings under the hood.
Accuracy
| Level | Use case |
|---|---|
| 1 | Fastest indexing, large corpora |
| 2 | Balanced |
| 3 | Recommended default |
| 4–5 | Highest precision |
Similarity metrics
use Sigmie\Enums\VectorSimilarity; $props->text('description')->semantic( dimensions: 384, similarity: VectorSimilarity::Cosine, // default); $props->text('abstract')->semantic( dimensions: 384, similarity: VectorSimilarity::DotProduct,); $props->text('content')->semantic( dimensions: 384, similarity: VectorSimilarity::Euclidean,);
Searching
Search is identical to Elasticsearch:
$results = $sigmie->newSearch('articles') ->properties($props) ->semantic() ->queryString('quantum computing') ->size(20) ->get();
Migrate from Elasticsearch
Change one parameter:
// Before$sigmie = Sigmie::create(hosts: ['https://localhost:9200']); // After$sigmie = Sigmie::create( hosts: ['https://localhost:9200'], engine: SearchEngineType::OpenSearch,);
The rest of your code is unchanged.
AWS OpenSearch Service
For username/password auth:
$sigmie = Sigmie::create( hosts: ['https://your-domain.region.es.amazonaws.com'], engine: SearchEngineType::OpenSearch, config: ['auth' => ['username', 'password']],);
For IAM-signed requests, see the AWS section of Connection Setup.