πŸ”Œ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ elasticsearch ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ сайту Π·Π° нСсколько простых шагов

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Elasticsearch ΠΊ сайту?

Для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Elasticsearch ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ сайту, Π²Π°ΠΌ потрСбуСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ нСсколько шагов:

Π¨Π°Π³ 1: УстановитС Elasticsearch

curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-archive-keyring.gpg] https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list
sudo apt update
sudo apt install elasticsearch

Π¨Π°Π³ 2: НастройтС Elasticsearch

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Elasticsearch /etc/elasticsearch/elasticsearch.yml ΠΈ установитС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:

network.host: 0.0.0.0
discovery.type: single-node

Π¨Π°Π³ 3: ЗапуститС Elasticsearch

sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch

Π¨Π°Π³ 4: УстановитС Elasticsearch Python

pip install elasticsearch

Π¨Π°Π³ 5: ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ΡΡŒ ΠΊ Elasticsearch ΠΈΠ· вашСго сайта

from elasticsearch import Elasticsearch

# Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ экзСмпляр ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Elasticsearch
client = Elasticsearch(hosts=["localhost"])

# ΠŸΡ€ΠΈΠΌΠ΅Ρ€ запроса ΠΊ Elasticsearch
query = {
  "query": {
    "match": {
      "field": "value"
    }
  }
}

# ΠžΡ‚ΠΏΡ€Π°Π²ΡŒΡ‚Π΅ запрос
response = client.search(index="your_index", body=query)

# ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Π°ΠΉΡ‚Π΅ ΠΎΡ‚Π²Π΅Ρ‚
for hit in response["hits"]["hits"]:
    print(hit["_source"])

ПослС выполнСния всСх этих шагов, Π²Ρ‹ смоТСтС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Elasticsearch ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ сайту ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ для выполнСния ΠΌΠΎΡ‰Π½ΠΎΠ³ΠΎ поиска ΠΈ Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΈ.

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Elasticsearch ΠΊ сайту

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Elasticsearch ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ Π²Π΅Π±-сайту ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ вашСго сайта, позволяя ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ быстрый ΠΈ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ поиск ΠΏΠΎ вашим Π΄Π°Π½Π½Ρ‹ΠΌ. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Elasticsearch ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ сайту шаг Π·Π° шагом.

Π¨Π°Π³ 1: Установка Elasticsearch

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ шаг состоит Π² установкС Elasticsearch Π½Π° ваш сСрвСр. Π’Π°ΠΌ понадобится сСрвСр с ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой Linux ΠΈΠ»ΠΈ Windows. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Elasticsearch:

curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.0-linux-x86_64.tar.gz
tar -xvf elasticsearch-7.17.0-linux-x86_64.tar.gz
cd elasticsearch-7.17.0/bin
./elasticsearch

ПослС выполнСния этих ΠΊΠΎΠΌΠ°Π½Π΄ Elasticsearch Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½ Π½Π° ΠΏΠΎΡ€Ρ‚Ρƒ 9200.

Шаг 2: БозданиС индСкса

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Elasticsearch для поиска, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ индСкс, Π³Π΄Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ ваши Π΄Π°Π½Π½Ρ‹Π΅. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ индСкс с ΠΈΠΌΠ΅Π½Π΅ΠΌ "my_index":

PUT /my_index
{
  "settings": {
    "number_of_shards": 1,
    "number_of_replicas": 1
  }
}

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создаСм индСкс с ΠΎΠ΄Π½ΠΈΠΌ осколком ΠΈ ΠΎΠ΄Π½ΠΎΠΉ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΎΠΉ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ эти значСния Π² соотвСтствии с трСбованиями вашСго сайта.

Π¨Π°Π³ 3: Π˜Π½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Ρƒ вас Π΅ΡΡ‚ΡŒ индСкс, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свои Π΄Π°Π½Π½Ρ‹Π΅. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π² индСкс "my_index":

PUT /my_index/_doc/1
{
  "title": "ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°",
  "content": "Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ содСрТимого Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°"
}

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ индСксируСм Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ с ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ "1" Π² индСксС "my_index". Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ свои собствСнныС поля ΠΈ значСния Π² соотвСтствии с вашими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.

Π¨Π°Π³ 4: Поиск Π΄Π°Π½Π½Ρ‹Ρ…

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Ρƒ вас Π΅ΡΡ‚ΡŒ индСкс ΠΈ индСксированныС Π΄Π°Π½Π½Ρ‹Π΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ поиск ΠΏΠΎ вашим Π΄Π°Π½Π½Ρ‹ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Elasticsearch. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ поискового запроса:

GET /my_index/_search
{
  "query": {
    "match": {
      "content": "ΠΏΡ€ΠΈΠΌΠ΅Ρ€"
    }
  }
}

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ выполняСм поиск ΠΏΠΎ полю "content" Π² индСксС "my_index" ΠΈ ΠΈΡ‰Π΅ΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, содСрТащиС слово "ΠΏΡ€ΠΈΠΌΠ΅Ρ€". Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ свои собствСнныС запросы ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ Π² соотвСтствии с вашими потрСбностями.

Π¨Π°Π³ 5: Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с вашим сайтом

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Elasticsearch для поиска Π΄Π°Π½Π½Ρ‹Ρ…, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ с вашим Π²Π΅Π±-сайтом. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° Π½Π° Python, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ, ΠΊΠ°ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ поиск Π² Elasticsearch ΠΈ вывСсти Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π½Π° вашСм сайтС:

from elasticsearch import Elasticsearch

# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Elasticsearch
es = Elasticsearch(['localhost:9200'])

# Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ поискового запроса
result = es.search(index='my_index', body={'query': {'match': {'content': 'ΠΏΡ€ΠΈΠΌΠ΅Ρ€'}}})

# Π’Ρ‹Π²ΠΎΠ΄ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ²
for hit in result['hits']['hits']:
    print(hit['_source']['title'])

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Elasticsearch для Python для создания ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Elasticsearch ΠΈ выполнСния поискового запроса. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ поиска выводятся Π½Π° вашСм сайтС.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Elasticsearch ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ Π²Π΅Π±-сайту ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ возмоТности поиска ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Elasticsearch ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ сайту, начиная с установки Elasticsearch, создания индСкса, индСксации Π΄Π°Π½Π½Ρ‹Ρ…, выполнСния поисковых запросов ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с вашим Π²Π΅Π±-сайтом. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΡ‰Π½Ρ‹Π΅ возмоТности Elasticsearch для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ вашСго сайта.

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

ElasticSearch установка - ElasticSearch ΡƒΡ€ΠΎΠΊΠΈ

ИспользованиС Elasticsearch для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ поиска ΠΏΠΎ сайту

Установка, настройка ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ CS вынСсСнного Elasticsearch

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

πŸ”Œ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ elasticsearch ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ сайту Π·Π° нСсколько простых шагов