<?php
/**
* Elasticsearch PHP client
*
* @link https://github.com/elastic/elasticsearch-php/
* @copyright Copyright (c) Elasticsearch B.V (https://www.elastic.co)
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
* @license https://www.gnu.org/licenses/lgpl-2.1.html GNU Lesser General Public License, Version 2.1
*
* Licensed to Elasticsearch B.V under one or more agreements.
* Elasticsearch B.V licenses this file to you under the Apache 2.0 License or
* the GNU Lesser General Public License, Version 2.1, at your option.
* See the LICENSE file in the project root for more information.
*/
declare(strict_types = 1);
namespace Elasticsearch\Endpoints;
use Elasticsearch\Endpoints\AbstractEndpoint;
/**
* Class Search
* Elasticsearch API name search
*
* NOTE: this file is autogenerated using util/GenerateEndpoints.php
* and Elasticsearch 7.17.0 (bee86328705acaa9a6daede7140defd4d9ec56bd)
*/
class Search extends AbstractEndpoint
{
public function getURI(): string
{
$index = $this->index ?? null;
$type = $this->type ?? null;
if (isset($type)) {
@trigger_error('Specifying types in urls has been deprecated', E_USER_DEPRECATED);
}
if (isset($index) && isset($type)) {
return "/$index/$type/_search";
}
if (isset($index)) {
return "/$index/_search";
}
return "/_search";
}
public function getParamWhitelist(): array
{
return [
'analyzer',
'analyze_wildcard',
'ccs_minimize_roundtrips',
'default_operator',
'df',
'explain',
'stored_fields',
'docvalue_fields',
'from',
'ignore_unavailable',
'ignore_throttled',
'allow_no_indices',
'expand_wildcards',
'lenient',
'preference',
'q',
'routing',
'scroll',
'search_type',
'size',
'sort',
'_source',
'_source_excludes',
'_source_includes',
'terminate_after',
'stats',
'suggest_field',
'suggest_mode',
'suggest_size',
'suggest_text',
'timeout',
'track_scores',
'track_total_hits',
'allow_partial_search_results',
'typed_keys',
'version',
'seq_no_primary_term',
'request_cache',
'batched_reduce_size',
'max_concurrent_shard_requests',
'pre_filter_shard_size',
'rest_total_hits_as_int',
'min_compatible_shard_node'
];
}
public function getMethod(): string
{
return isset($this->body) ? 'POST' : 'GET';
}
public function setBody($body): Search
{
if (isset($body) !== true) {
return $this;
}
$this->body = $body;
return $this;
}
}