PHP code example of ngocnm / laravel-elasticsearch

1. Go to this page and download the library: Download ngocnm/laravel-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/ */

    

ngocnm / laravel-elasticsearch example snippets


\Ngocnm\ElasticQuery\ElasticsearchServiceProvider::class

$query_log =\Ngocnm\ElasticQuery\ElasticsearchQueryLog::getLog();

$response = $client->select('field_1,field_2')->get();

$response = $client->select('field_1,field_2')->limit(3)->get();

$response = $client->select('field_1,field_2')->offset($offset)->limit(3)->get();

$response = $client->select('field_1,field_2')->where('field_name',$value)->limit(3)->get();
//or
$response = $client->select('field_1,field_2')->where('field_name','>',$value)->limit(3)->get();

$response = $client->select('field_1,field_2')->orderBy('field_name','asc')->get();

$value = ['value_1','value_2'];
$response = $client->select('field_1,field_2')->whereBetween('field_name',$value)->get();

//$distance = '1km' default 
//column name map: location 
$response = $client->select('field_1,field_2')->whereGeoDistance($lat,$lng,$distance,'asc')->get();

$response = $client->delete($id);

$response = $client->where('field_name',$value)->deleteMulti();

$response = $client->queryString('field_name',$keyword)->get();

$response = $client->select('field_1,field_2')->fullTextSearchTrigrams('field_name',$keyword)->get();

$column = 'field';
//or
$column = ['field_1','field_2'];
$keyword = 'keyword_search';
$config = [
     "min_term_freq" => 1,
     "max_query_terms" => 12
];//default:null

$response = $client->select('field_1,field_2')->moreLikeThis($column,$keyword,$config)->get();

$value = [23,4,5,...];
$response = $client->whereIn('field_name',$value)->get();

$response = $client->WhereNot('field_name',$value)->get();
//Or
$response = $client->WhereNot('field_name','>',$value)->get();

$value = [23,4,5,...];
$response = $client->whereNotIn('field_name',$value)->get();

$value = ['value_1','value_2'];
$response = $client->select('field_1,field_2')->whereNotBetween('field_name',$value)->get();

        $data = [
            'field_id_unique'=>1,
            'field_1'=>$value_1,
            'field_2'=>$value_2
        ];
        

        $data = [
              [
                  'field_id_unique'=>1,
                  'field_1'=>$value_1,
                  'field_2'=>$value_2
              ],
              [
                  'field_id_unique'=>2,
                  'field_1'=>$value_1,
                  'field_2'=>$value_2
              ]
      ];
        

$reponse = $client->insertOrUpdate($data,'name_field_id_unique');

$keyword = "key search";
$matchs = ['filed' =>'field_name_match', 'value'=>'value_match', 'wieght' => 24]; 
//or 
$matchs = [ 
        ['filed' =>'field_name_match', 'value'=>'value_match', 'wieght' => 24],
        ['filed' =>'field_name_match_1', 'value'=>'value_match_1', 'wieght' => 42]
    ];
    
$boost = 5;// default: 5; 
$max_boost = 42; // default: 42;
$min_score = 23;// default: 23;
$boost_mode = 'multiply'; // default: multiply;
// multiply :scores are multiplied (default)
// sum : scores are summed
// avg : scores are averaged
// first : the first function that has a matching filter is applied

$score_mode = 'max'; // default: max;
// max : maximum score is used
// min : minimum score is used


$response = $client->queryString('field_name',$keyword)->functionScore($matchs, $boost, $max_boost,$min_score, $boost_mode, $score_mode)->get();

  $field = 'field_name';
  $spans_term = ['value_1','value_2'];
  $slop = 1;//default: 1 
  $in_order = false;// default: false;
  
  $response = $client->spanNearQuery($field, $spans_term,  $slop, $in_order);

  $data_update = ['field'=>'new_value','field_2'=>'new_value_2'];
  $response = $client->where('field_condition','value_condition')->update($data_update);

Ngocnm\ElasticQuery\ElasticsearchQuery::deleteIndex($name_index);

$query_create = [
        'index' => $index_name,
        'body' => [
            'settings' => [
                'number_of_shards' => 15,
                'number_of_replicas' => 1
            ]
        ]
    ];
    
Ngocnm\ElasticQuery\ElasticsearchQuery::createIndex($query_create);

$index_name = 'index_demo';
$number_of_shards = 15; // default:15
$number_of_replicas = 1; // default:15
$mappings = [
                '_source' => [
                    'enabled' => true
                ],
                'properties' => [
                    'location' => [
                        'type' => 'geo_point'
                    ]
                ]
            ]; // default:[]
Ngocnm\ElasticQuery\ElasticsearchQuery::createIndexByOptions($index_name,$number_of_shards,$number_of_replicas,$mappings);

Ngocnm\ElasticQuery\ElasticsearchQuery::indexExists($name_index);

//Cache forever 
$response = $client->WhereNot('field_name',$value)->cache()->get();

//With timeout cache
$timeout = 60;//60 second 
$response = $client->WhereNot('field_name',$value)->cache($timeout)->get();
config/elasticsearch.php
bash
php artisan vendor:publish --tag=config