Download the PHP package harlan-zw/laravel-swiftype without Composer
On this page you can find all versions of the php package harlan-zw/laravel-swiftype. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download harlan-zw/laravel-swiftype
More information about harlan-zw/laravel-swiftype
Files in harlan-zw/laravel-swiftype
Package laravel-swiftype
Short Description Swiftype Integration for Laravel
License MIT
Homepage https://github.com/harlan-zw/swiftype
Informations about the package laravel-swiftype
Laravel Swiftype
Laravel Swiftype is a wrapper for elastic/app-search with some Laravel specific helpers to make integrating your Eloquent Models with Swiftype a breeze.
Installation
Via Composer
If you do not run Laravel 5.5 (or higher), then add the service provider in config/app.php
:
Usage
In your .env
file, add the following variables.
Get your keys from the Swiftype Credentials page.
When self-hosting an instance of AppSearch, you can use the API Endpoint displayed on the credentials page as
SWIFTYPE_HOST_IDENTIFIER
, e.g.:
API
This packages has two Facades which give you access to the underlying Swiftype client.
Swiftype
The Swiftype
facade is a direct wrapper for the built client from https://github.com/elastic/app-search-php. Any
command from the base client can be used on this facade. Example:
-
Swiftype::listEngines($currentPage = null, $pageSize = null)
- Show all engines available Swiftype::createEngine($name, $language = 'en')
- Find an engine based on name
With IDE auto-complete:
``
SwiftypeEngine
The SwiftypeEngine
is a wrapper on top of the Swiftype
facade with direct context of the default engine. Many of the
same functions from the core API is available in this facade without the need to specify an engine.
SwiftypeEngine::search($query, $options)
- Search documents within the engine
SwiftypeEngine::indexDocument($document)
- Creates a new document, or updates an existing, based on the primary
key. This function will use a transformer to make sure the primary key is transformed to just id
.
SwiftypeEngine::indesDocuments($document)
- Similar as the above but will take a list of models and chunk them
to 100 per request
SwiftypeEngine::deleteDocument($documentId)
- Removes a document.
SwiftypeEngine::deleteDocuments($documentIds)
- Takes an array of document ids and removes them.
SwiftypeEngine::listDocuments($page = 1, $pageSize = 100)
- Lists documents that belong to the engine, with pagination.
SwiftypeEngine::listAllDocumentsByPages($action, $page = 1, $pageSize = 100)
- Lists documents that belong to the engine,
will iterate through all pages and call your custom action.
SwiftypeEngine::purgeAllDocuments()
- Will remove all documents from Swiftype
Traits
IsSwiftypeDocument
is a trait available which hooks into the models saved
event hook. The following happens on
saved:
shouldSyncSwiftypeOnSave
is checked and must pass true to continuegetSwiftypeAttributes
is called to get the attributes to send to Swiftype
You should override these functions for business specific logic.
Jobs
Currently only jobs directly related to the Eloquent Model events are created. These can be used to queue the data sync.
DeleteDocument($documentId)
- Delete a particular document, takes the document idIndexDocument($document)
- Pushes the individual document. Takes the mapped documentSyncDocuments
- Iterates through all documents in Swiftype and local DB to find documents out of sync and eithers adds or removes them. This uses theswiftype.sync_models
configuration
Testing
Security
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
All versions of laravel-swiftype with dependencies
illuminate/support Version ^6.0|^7.0|^8.0|^9.0
elastic/enterprise-search Version ^7.13