<?php
return [
/**
* You can specify one of several different connections when building an
* Elasticsearch client.
*
* Here you may specify which of the connections below you wish to use
* as your default connection when building an client. Of course you may
* use create several clients at once, each with different configurations.
*/
'defaultConnection' => 'default',
/**
* These are the connection parameters used when building a client.
*/
'connections' => [
'default' => [
/**
* Hosts
*
* This is an array of hosts that the client will connect to. It can be a
* single host, or an array if you are running a cluster of Elasticsearch
* instances.
*
* This is the only configuration value that is mandatory.
*
* Presently using "extended" host configuration method
*
* @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_configuration.html#_extended_host_configuration
*
* There is also the shorter "inline" configuration method available
*
* @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_configuration.html#_inline_host_configuration
*/
'hosts' => [
[
'host' => env('ELASTICSEARCH_HOST', 'localhost'),
'port' => env('ELASTICSEARCH_PORT', 9200),
'scheme' => env('ELASTICSEARCH_SCHEME', null),
'user' => env('ELASTICSEARCH_USER', null),
'pass' => env('ELASTICSEARCH_PASS', null),
// If you are connecting to an Elasticsearch instance on AWS, you will need these values as well
'aws' => env('AWS_ELASTICSEARCH_ENABLED', false),
'aws_region' => env('AWS_REGION', ''),
'aws_key' => env('AWS_ACCESS_KEY_ID', ''),
'aws_secret' => env('AWS_SECRET_ACCESS_KEY', ''),
'aws_credentials' => null
],
],
/**
* SSL
*
* If your Elasticsearch instance uses an out-dated or self-signed SSL
* certificate, you will need to pass in the certificate bundle. This can
* either be the path to the certificate file (for self-signed certs), or a
* package like https://github.com/Kdyby/CurlCaBundle. See the documentation
* below for all the details.
*
* If you are using SSL instances, and the certificates are up-to-date and
* signed by a public certificate authority, then you can leave this null and
* just use "https" in the host path(s) above and you should be fine.
*
* @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_security.html#_ssl_encryption_2
*/
'sslVerification' => null,
/**
* Logging
*
* Logging is handled by passing in an instance of Monolog\Logger (which
* coincidentally is what Laravel's default logger is).
*
* If logging is enabled, you either need to set the path and log level
* (some defaults are given for you below), or you can use a custom logger by
* setting 'logObject' to an instance of Psr\Log\LoggerInterface. In fact,
* if you just want to use the default Laravel logger, then set 'logObject'
* to \Log::getMonolog().
*
* Note: 'logObject' takes precedent over 'logPath'/'logLevel', so set
* 'logObject' null if you just want file-based logging to a custom path.
*
* @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_configuration.html#enabling_logger
*/
'logging' => false,
// If you have an existing instance of Monolog you can use it here.
// 'logObject' => \Log::getMonolog(),
'logPath' => storage_path('logs/elasticsearch.log'),
'logLevel' => Monolog\Logger::INFO,
/**
* Retries
*
* By default, the client will retry n times, where n = number of nodes in
* your cluster. If you would like to disable retries, or change the number,
* you can do so here.
*
* @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_configuration.html#_set_retries
*/
'retries' => null,
/**
* The remainder of the configuration options can almost always be left
* as-is unless you have specific reasons to change them. Refer to the
* appropriate sections in the Elasticsearch documentation for what each option
* does and what values it expects.
*/
/**
* Sniff On Start
*
* @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_configuration.html
*/
'sniffOnStart' => false,
/**
* HTTP Handler
*
* @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_configuration.html#_configure_the_http_handler
* @see http://ringphp.readthedocs.org/en/latest/client_handlers.html
*/
'httpHandler' => null,
/**
* Connection Pool
*
* @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_configuration.html#_setting_the_connection_pool
* @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_connection_pool.html
*/
'connectionPool' => null,
/**
* Connection Selector
*
* @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_configuration.html#_setting_the_connection_selector
* @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_selectors.html
*/
'connectionSelector' => null,
/**
* Serializer
*
* @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_configuration.html#_setting_the_serializer
* @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_serializers.html
*/
'serializer' => null,
/**
* Connection Factory
*
* @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_configuration.html#_setting_a_custom_connectionfactory
*/
'connectionFactory' => null,
/**
* Endpoint
*
* @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/6.0/_configuration.html#_set_the_endpoint_closure
*/
'endpoint' => null,
/**
* Register additional namespaces
*
* An array of additional namespaces to register.
*
* @example 'namespaces' => [XPack::Security(), XPack::Watcher()]
* @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/current/ElasticsearchPHP_Endpoints.html#Elasticsearch_ClientBuilderregisterNamespace_registerNamespace
*/
'namespaces' => [],
/**
* Tracer
*
* Tracer is handled by passing in a name of the class implements Psr\Log\LoggerInterface.
*
* @see https://www.elastic.co/guide/en/elasticsearch/client/php-api/2.0/_configuration.html#_setting_a_custom_connectionfactory
*/
'tracer' => null,
],
],
];