# Elasticsearch Configuration
# Introduction
Elasticsearch is a distributed search and analytics engine designed for scalability and real-time data processing. This guide provides the necessary steps to configure and use Elasticsearch in the Unopim project.
# Configuration Steps
- Environment Variables
Add the following settings to your .env
file:
ELASTICSEARCH_ENABLED=true
ELASTICSEARCH_CONNECTION=default
ELASTICSEARCH_HOST=localhost:9200
ELASTICSEARCH_USER=
ELASTICSEARCH_PASS=
ELASTICSEARCH_API_KEY=
ELASTICSEARCH_CLOUD_ID=
ELASTICSEARCH_INDEX_PREFIX=unopim_testing
# Environment Variables
ELASTICSEARCH_ENABLED
: Enables or disables the Elasticsearch functionality- Values:
true
/false
- Default:
false
- Purpose: Controls whether ElasticSearch functionality is active
- Values:
ELASTICSEARCH_CONNECTION
: Determines the connection type- Values:
default
,cloud
,api
- Default:
default
- Purpose: Specifies which connection configuration to use
- Values:
ELASTICSEARCH_HOST
: ElasticSearch server location- Format:
hostname:port
- Default:
localhost:9200
- Example:
localhost:9200
orelastic.example.com:9200
- Format:
ELASTICSEARCH_USER
&ELASTICSEARCH_PASS
: Basic authentication credentials- Optional: Required only when using username/password authentication
- Example:
ELASTICSEARCH_USER=elastic ELASTICSEARCH_PASS=your_secure_password
ELASTICSEARCH_API_KEY
: API key-based authentication- Optional: Alternative to username/password authentication
- Format: Base64 encoded string
- Example:
VnVhQ2ZHY0JDZGJrUW0tZTVhT3g6dWkybHAyYXhUTm1iX0ZmZHM3T0diUQ==
ELASTICSEARCH_CLOUD_ID
: Elastic Cloud deployment identifier- Optional: Required only for Elastic Cloud deployments
- Format:
deployment:base64_data
- Example:
deployment:dXMtZWFzdC0xLmF3cy5mb3VuZC5pbzo0NDM=
ELASTICSEARCH_INDEX_PREFIX
: Index naming prefix- Purpose: Separates indices across different environments
- Examples:
- Development:
unopim_dev_
- Production:
unopim_prod_
- Testing:
unopim_testing
- Development:
- Cache Configuration
After updating the environment variables, run the following command to cache the configuration:
php artisan config:cache
# Indexing Commands
- Clear Indexes
This command clears all existing Elasticsearch indexes for the Unopim project. Warning: This will delete all indexed data. Use with caution.
php artisan unopim:elastic:clear
- Index Products
This command indexes all products in the database. Use it to create or update the product index in Elasticsearch:
php artisan unopim:product:index
- Index Categories
This command indexes all categories in the database. Use it to create or update the category index in Elasticsearch:
php artisan unopim:category:index