Статьи

asticsearch для начинающих, часть 1: как создать документ

В этой серии Elasticsearch для начинающих я дам вам основы Elasticsearch с примерами из реальной жизни. Первая часть предназначена для того, чтобы научить вас создавать индексный документ в Elasticsearch.

Я предполагаю, что вам удалось загрузить последний zip-файл Elasticsearch в свой локальный компьютер, распаковать его, а затем установить плагин marvel и запустить новый узел, запустив «asticsearch »в каталоге bin вашей установки.

Теперь пришло время для некоторых действий. Мы можем выбрать индивидуальный идентификатор для нашего документа или оставить его Elasticsearch, чтобы не беспокоиться о создании нового.

Вы можете выбрать любой контент, который хотите, но для простоты я рассмотрю обычный пользовательский пример. Наш пользователь будет иметь имя пользователя, имя, фамилию и контактный телефон.

1
2
3
4
5
6
{
   "username" : "kimchy",
   "fist_name" : "kimchy",
   "last_name" : "aloevera",
   "phone" : "00905332446578"
 }

Теперь давайте откроем наш плагин Sense. Перейдите к «http: // localhost: 9200 / _plugin / marvel / sense / index.html» после того, как ваш узел запущен и работает.

Прежде чем что-то индексировать, я скажу вам, что нам понадобится индекс и информация о типе.

Индекс похож на базу данных, а тип — на таблицу, если мы используем аналогии с СУБД.

Пожалуйста, не запутайтесь в значении индекса. Индексация документа создает документ, индексная информация документа является его базой данных.

Давайте вставим наш первый документ с пользовательским идентификатором. Мы будем использовать «эластичный_101» в качестве индекса и «пользователь» в качестве типа.

1
2
3
4
5
6
7
PUT /elastic_101/user/1
 {
   "username" : "kimchy",
   "fist_name" : "kimchy",
   "last_name" : "aloevera",
   "phone" : "00905332446578"
 }

Мы можем проверить, успешно ли мы его проиндексировали.

Результат к следующему запросу

1
GET elastic_101/user/_search

является

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
{
   "took": 16,
   "timed_out": false,
   "_shards": {
      "total": 5,
      "successful": 5,
      "failed": 0
   },
   "hits": {
      "total": 1,
      "max_score": 1,
      "hits": [
         {
            "_index": "elastic_101",
            "_type": "user",
            "_id": "1",
            "_score": 1,
            "_source": {
               "username": "kimchy",
               "fist_name": "kimchy",
               "last_name": "aloevera",
               "phone": "00905332446578"
            }
         }
      ]
   }
}

Теперь давайте индексировать новый документ с автоматически сгенерированным идентификатором.

1
2
3
4
5
6
7
POST /elastic_101/user/
 {
   "username" : "sezinkarli",
   "fist_name" : "sezin",
   "last_name" : "karli",
   "phone" : "00905322426528"
 }

Снова позвольте мне проверить результат с

1
GET elastic_101/user/_search

Результат:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
{
   "took": 40,
   "timed_out": false,
   "_shards": {
      "total": 5,
      "successful": 5,
      "failed": 0
   },
   "hits": {
      "total": 2,
      "max_score": 1,
      "hits": [
         {
            "_index": "elastic_101",
            "_type": "user",
            "_id": "AVAFxb36kyTg7_oSOIVN",
            "_score": 1,
            "_source": {
               "username": "sezinkarli",
               "fist_name": "sezin",
               "last_name": "karli",
               "phone": "00905322426528"
            }
         },
         {
            "_index": "elastic_101",
            "_type": "user",
            "_id": "1",
            "_score": 1,
            "_source": {
               "username": "kimchy",
               "fist_name": "kimchy",
               "last_name": "aloevera",
               "phone": "00905332446578"
            }
         }
      ]
   }
}

Как видите, у обоих пользователей есть имя пользователя, имя, фамилия и телефон. Обратите внимание, что если для kimchy установлено значение 1, то есть тот, который мы ему дали, а другой идентификатор — «AVAFxb36kyTg7_oSOIVN», который генерируется Elasticsearch.

В этой части моего учебника Elasticsearch мы узнали, как создавать документы с пользовательским или автоматически генерируемым идентификатором. Вы можете получить более подробную информацию в моем курсе Elasticsearch in Action, и эта ссылка дает скидку 60%.