PHP code example of funphp / elasticsearch

1. Go to this page and download the library: Download funphp/elasticsearch library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

funphp / elasticsearch example snippets


namespace Start;

use Funphp\Elasticsearch\Searchable;

Class User{
    use Searchable;
    
    public function searchableIndex(): string
    {
        return 'index-user';
    }
}


self::searchable()
    ->searchableId('test-id')
    ->search();

self::searchable()
    ->query(function (Query $query) {
        $query->term('status', 1);
    })
    ->search();

self::searchable()
    ->query(function (Query $query) {
        $query->match('name', '乌拉');
    })
    ->search();

self::searchable()
    ->query(function (Query $query) {
        $query->ids([1, 2]);
    })
    ->search();

self::searchable()
    ->query(function (Query $query) {
        $query->range('age', function (Range $range) {
            $range->gte(20);
        });
    })
    ->search();

self::searchable()
    ->query(function (Query $query) {
        $query->bool(function (BoolQuery $boolQuery) {
            $boolQuery->must(function (Query $query) {
                $query->range('login_at', function (Range $range) {
                    $range->gte('2021-10-01 00:00:00');
                });
            })->must(function (Query $query) {
                $query->range('age', function (Range $range) {
                    $range->lt(18)->gte(12);
                });
            });
        });
    })
    ->sort(fn(Sort $sort) => $sort->sortBy('age'))
    ->search();

self::searchable()
    ->query(function (Query $query) {
        $query->bool(function (BoolQuery $boolQuery) {
            $boolQuery->mustNot(function (Query $query) {
                $query->exists('comments');
            });
        });
    })
    ->from(10)
    ->size(10)
    ->source(['id', 'title', 'content'])
    ->search();

self::searchable()
    ->query(function (Query $query) {
        $query->term('status', $status);
    })->aggs(function (Aggregation $aggregation) {
        $aggregation->valueCount('count', 'id')
            ->max('max', 'value')
            ->sum('sum', 'value');
    })->search();