{"id":21617762,"url":"https://github.com/PHP-CMSIG/search","last_synced_at":"2025-07-17T09:30:53.139Z","repository":{"id":65252129,"uuid":"576431865","full_name":"PHP-CMSIG/search","owner":"PHP-CMSIG","description":"Search abstraction over different search engines written in PHP. Currently implemented Elasticsearch, Opensearch, Algolia, Meilisearch, Loupe, RediSearch, Solr, Typesense. Documentation: https://php-cmsig.github.io/search/","archived":false,"fork":false,"pushed_at":"2025-07-14T06:29:09.000Z","size":8365,"stargazers_count":406,"open_issues_count":52,"forks_count":27,"subscribers_count":7,"default_branch":"0.10","last_synced_at":"2025-07-14T07:51:07.969Z","etag":null,"topics":["algolia","apache-solr","cmsig","elasticsearch","help-wanted","meilisearch","opensearch","php","phpseal","redisearch","seal-search","search","search-abstraction","search-client","typesense"],"latest_commit_sha":null,"homepage":"https://php-cmsig.github.io/search/","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PHP-CMSIG.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["alexander-schranz"],"custom":["https://paypal.me/L91"]}},"created_at":"2022-12-09T21:05:49.000Z","updated_at":"2025-07-14T06:28:27.000Z","dependencies_parsed_at":"2024-03-08T16:29:44.486Z","dependency_job_id":"7fbbdf39-e1f5-4138-899c-4a905eb4b500","html_url":"https://github.com/PHP-CMSIG/search","commit_stats":null,"previous_names":["php-cmsig/search","schranz-search/schranz-search"],"tags_count":21,"template":false,"template_full_name":null,"purl":"pkg:github/PHP-CMSIG/search","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PHP-CMSIG%2Fsearch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PHP-CMSIG%2Fsearch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PHP-CMSIG%2Fsearch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PHP-CMSIG%2Fsearch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PHP-CMSIG","download_url":"https://codeload.github.com/PHP-CMSIG/search/tar.gz/refs/heads/0.10","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PHP-CMSIG%2Fsearch/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265589062,"owners_count":23793460,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["algolia","apache-solr","cmsig","elasticsearch","help-wanted","meilisearch","opensearch","php","phpseal","redisearch","seal-search","search","search-abstraction","search-client","typesense"],"created_at":"2024-11-24T23:00:31.354Z","updated_at":"2025-07-17T09:30:53.133Z","avatar_url":"https://github.com/PHP-CMSIG.png","language":"PHP","funding_links":["https://github.com/sponsors/alexander-schranz","https://paypal.me/L91"],"categories":["PHP"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n    \u003cimg alt=\"SEAL Logo with an abstract seal sitting on a telescope.\" src=\"https://avatars.githubusercontent.com/u/120221538?s=400\u0026v=6\" width=\"200\" height=\"200\"\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003eLogo created by \u003ca href=\"https://cargocollective.com/meinewilma\"\u003eMeine Wilma\u003c/a\u003e\u003c/div\u003e\n\n\u003ch1 align=\"center\"\u003eSEAL\u003c/h1\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n\u003cstrong\u003eMonorepository\u003c/strong\u003e for **SEAL** a **S**earch **E**ngine **A**bstraction **L**ayer with support to different search engines\u003cbr/\u003e\n\u003ca href=\"https://php-cmsig.github.io/search/\"\u003eDocumentation\u003c/a\u003e | [Packages](#-packages)\n\nElasticsearch | Opensearch | Meilisearch | Algolia | Loupe | Solr | Redisearch | Typesense \u003cbr/\u003e\n**PHP** | Symfony | Laravel | Spiral | Mezzio | Yii\n\n\u003c/div\u003e\n\n\u003cbr /\u003e\n\u003cbr /\u003e\n\n## 👋 Introduction\n\nThe **SEAL** project is a PHP library designed to simplify the process of interacting\nwith different search engines. It provides a straightforward interface that enables users\nto communicate with various search engines, including:\n\n- [Elasticsearch](packages/seal-elasticsearch-adapter)\n- [Opensearch](packages/seal-opensearch-adapter)\n- [Meilisearch](packages/seal-meilisearch-adapter)\n- [Algolia](packages/seal-algolia-adapter)\n- [Loupe](packages/seal-loupe-adapter)\n- [Solr](packages/seal-solr-adapter)\n- [RediSearch](packages/seal-redisearch-adapter)\n- [Typesense](packages/seal-typesense-adapter)\n- [Memory](packages/seal-memory-adapter)\n- ... missing something? Let us know!\n\nIt also provides integration packages for the\n\n[Symfony](integrations/symfony),\n[Laravel](integrations/laravel),\n[Spiral](integrations/spiral),\n[Mezzio](integrations/mezzio) \nand [Yii](integrations/yii) PHP frameworks.\n\nIt is worth noting that the project draws inspiration from the\n``Doctrine`` and ``Flysystem`` projects. These two projects have been a great inspiration\nin the development of SEAL, as they provide excellent examples of how to create consistent\nand user-friendly APIs for complex systems.\n\n\u003e **Note**:\n\u003e This project is heavily under development and any feedback is greatly appreciated.\n\n## 🏗️ Structure\n\n![SEAL Structure overview](docs/_images/overview.svg)\n\n\nSEAL's provides a basic abstraction layer for add, remove and search and filters for documents.\nThe main class and service handling this is called `Engine`, which is responsible for all this things.\nThe `Schema` which is required defines the different `Indexes` and their `Fields`.\n\nThe project provides different `Adapters` which the Engine uses to communicate with the different `Search Engine` software and services.\nThis way it is easy to switch between different search engine software and services.\n\n**Glossary**\n\n| Term            | Definition                                                                                                                                                                                        |\n|-----------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `Engine`        | The main class and service responsible to provide the basic interface for add, remove and search and filters for documents.                                                                       |\n| `Schema`        | Defines the different `Indexes` and their `Fields`, for every field a specific type need to be defined and what you want todo with them via flags like `searchable`, `filterable` and `sortable`. |\n| `Adapter`       | Provides the communication between the Engine and the Search Engine software and services.                                                                                                        |\n| `Documents`     | A structure of data that you want to index need to follow the structure of the fields of the index schema.                                                                                        |\n| `Search Engine` | Search Engine software or service where the data will actually be stored currently `Meilisearch`, `Opensearch`, `Elasticsearch`, `Algolia`, `Redisearch`, `Solr` and `Typesense` is supported.    |\n\n## 📖 Installation and Documentation\n\nThe documentation is available at [https://php-cmsig.github.io/search/](https://php-cmsig.github.io/search/).\nIt is the recommended and best way to start using the library, it will step-by-step guide you through all the features\nof the library.\n\n- [Introduction](https://php-cmsig.github.io/search/index.html)\n- [Getting Started](https://php-cmsig.github.io/search/getting-started/index.html)\n- [Schema](https://php-cmsig.github.io/search/schema/index.html)\n- [Index Operations](https://php-cmsig.github.io/search/indexing/index.html)\n- [Search \u0026 Filters](https://php-cmsig.github.io/search/search-and-filters/index.html)\n- [Cookbooks](https://php-cmsig.github.io/search/cookbooks/index.html)\n- [Research](https://php-cmsig.github.io/search/research/index.html)\n\n## 📦 Packages\n\nFull list of packages provided by the SEAL project:\n\n- [`cmsig/seal`](packages/seal/README.md) - The core package of the SEAL project.\n- [`cmsig/seal-algolia-adapter`](packages/seal-algolia-adapter/README.md) - Adapter for the Algolia search engine.\n- [`cmsig/seal-elasticsearch-adapter`](packages/seal-elasticsearch-adapter/README.md) - Adapter for the Elasticsearch search engine.\n- [`cmsig/seal-opensearch-adapter`](packages/seal-opensearch-adapter/README.md) - Adapter for the Opensearch search engine.\n- [`cmsig/seal-meilisearch-adapter`](packages/seal-meilisearch-adapter/README.md) - Adapter for the Meilisearch search engine.\n- [`cmsig/seal-loupe-adapter`](packages/seal-loupe-adapter/README.md) - Adapter for the Loupe search engine.\n- [`cmsig/seal-redisearch-adapter`](packages/seal-redisearch-adapter/README.md) - Adapter for the Redisearch search engine.\n- [`cmsig/seal-solr-adapter`](packages/seal-solr-adapter/README.md) - Adapter for the Solr search engine.\n- [`cmsig/seal-typesense-adapter`](packages/seal-typesense-adapter/README.md) - Adapter for the Typesense search engine.\n- [`cmsig/seal-read-write-adapter`](packages/seal-read-write-adapter/README.md) - Adapter to split read and write operations.\n- [`cmsig/seal-multi-adapter`](packages/seal-multi-adapter/README.md) - Adapter to write into multiple search engines.\n- [`cmsig/seal-laravel-package`](integrations/laravel/README.md) - Integrates SEAL into the Laravel framework.\n- [`cmsig/seal-symfony-bundle`](integrations/symfony/README.md) - Integrates SEAL into the Symfony framework.\n- [`cmsig/seal-spiral-bridge`](integrations/spiral/README.md) - Integrates SEAL into the Spiral framework.\n- [`cmsig/seal-mezzio-module`](integrations/mezzio/README.md) - Integrates SEAL into the Mezzio framework.\n- [`cmsig/seal-yii-module`](integrations/yii/README.md) - Integrates SEAL into the Yii framework.\n\nHave also a look at the following tags:\n\n- [https://packagist.org/search/?tags=seal-adapter](https://packagist.org/search/?tags=seal-adapter)\n- [https://github.com/topics/seal-php-adapter](https://github.com/topics/seal-php-adapter)\n\n## 🦑 Similar Projects\n\nThe following projects in the past target a similar problem:\n\n- [https://github.com/nresni/Ariadne](https://github.com/nresni/Ariadne) (Solr, Elasticsearch, Zendsearch: outdated 12 years ago)\n- [https://github.com/massiveart/MassiveSearchBundle](https://github.com/massiveart/MassiveSearchBundle) (ZendSearch, Elasticsearch)\n- [https://github.com/laravel/scout](https://github.com/laravel/scout) (Algolia, Meilisearch, Typesense)\n- [https://github.com/Mezcalito/ux-search/](https://github.com/Mezcalito/ux-search/) (Doctrine, Meilisearch, Algolia)\n\n## 📩 Authors\n\n- [Alexander Schranz](https://github.com/alexander-schranz/)\n- [The Community Contributors](https://github.com/php-cmsig/search/graphs/contributors)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPHP-CMSIG%2Fsearch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FPHP-CMSIG%2Fsearch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPHP-CMSIG%2Fsearch/lists"}