9951 explained code solutions for 126 technologies


elasticsearchHow can I use Elasticsearch with Laravel?


Elasticsearch can be used with Laravel through the Elasticquent package. This package provides a fluent syntax for mapping Eloquent models to Elasticsearch types.

To use Elasticquent, you first need to install it via composer:

composer require elasticquent/elasticquent

Once installed, you can create a model that extends the Elasticquent model. For example:

use Elasticquent\ElasticquentTrait;

class User extends Model
{
    use ElasticquentTrait;

    protected $mappingProperties = [
        'name' => [
            'type' => 'string',
            'analyzer' => 'standard'
        ],
        'age' => [
            'type' => 'integer'
        ]
    ];
}

The $mappingProperties array contains the mapping information for the model. You can use this array to define the field types and other settings for the Elasticsearch type.

Once the model is created, you can use it to query the Elasticsearch index. For example, to search for users with a name of 'John':

$users = User::searchByQuery(['match' => ['name' => 'John']]);

The searchByQuery() method takes a query array as an argument and returns an ElasticquentResultCollection object containing the results.

For more information, see the Elasticquent documentation.

Edit this code on GitHub