I have installed Elasticsearch in my Linux.
Follow below Steps.
Run the below command to Install Elasticsearch In locally.
Download and install the public signing key :
`wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -`
Installing from the APT repositoryedit
You may need to install the apt-transport-https package on Debian before proceeding :
`sudo apt-get install apt-transport-https`
Save the repository definition to /etc/apt/sources.list.d/elastic-7.x.list :
`echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list`
You can install the Elasticsearch Debian package with :
`sudo apt-get update && sudo apt-get install elasticsearch`
Elasticsearch is not started automatically after installation. How to start and stop Elasticsearch depends on whether your system uses SysV `init` or `systemd` (used by newer distributions).
`ps -p 1`
Running Elasticsearch with SysV `init` : Use the `update-rc.d` command to configure Elasticsearch to start automatically when the system boots up :
`sudo update-rc.d elasticsearch defaults 95 10`
Elasticsearch can be started and stopped using the `service` command :
`sudo -i service elasticsearch start`
`sudo -i service elasticsearch stop`
Configure Apache and Elasticsearch : Set up a proxy (Set up a proxy for Apache 2.4)
Enable mod_proxy as follows :
`a2enmod proxy_http` or `sudo a2enmod proxy_http`
Use a text editor to open /etc/apache2/sites-available/000-default.conf
Add the following directive at the top of the file :
`Listen 8080`
Add the following at the bottom of the file :
<VirtualHost *:8080>
ProxyPass "/" "http://localhost:9200/"
ProxyPassReverse "/" "http://localhost:9200/"
</VirtualHost>
Restart Apache :
`service apache2 restart` or `sudo service apache2 restart`
Verify the proxy works by entering the following command :
For example, if your proxy uses port 8080:
`curl -i http://localhost:8080/_cluster/health`
If curl request success then messages display like below :
HTTP/1.1 200 OK
Date: Sun, 23 Aug 2020 06:05:56 GMT
Server: Apache/2.4.18 (Ubuntu)
content-type: application/json; charset=UTF-8
content-length: 389
{"cluster_name":"elasticsearch","status":"yellow","timed_out":false,"number_of_nodes":1,"number_of_data_nodes":1,"active_primary_shards":1,"active_shards":1,"relocating_shards":0,"initializing_shards":0,"unassigned_shards":1,"delayed_unassigned_shards":0,"number_of_pending_tasks":0,"number_of_in_flight_fetch":0,"task_max_waiting_in_queue_millis":0,"active_shards_percent_as_number":50.0}
Go to `Admin Panel -> Stores -> Settings -> Configuration -> Catalog -> Catalog Search`. Change the settings like below.
`Search Engine : Search Engine7`
`Elasticsearch Server Hostname : localhost`
`Elasticsearch Server Port : 8080`
`Elasticsearch Index Prefix : magento2`
`Enable Elasticsearch HTTP Auth : No`
`Elasticsearch Server Timeout : 15`
Now save the configuration & run below cache clean command.
`php bin/magento cache:clean`
Now click on `Test Connection` button.
After successful you will receive `Successful! Test again?` in `Test Connection` button.
Ref : <a href="https://devdocs.magento.com/guides/v2.4/install-gde/prereq/es-config-apache.html">Dev Docs</a> & <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/deb.html">Elasticsearch</a>