Една от уникалните дизайнерски характеристики на Elasticsearch е, че за разлика от повечето традиционни системи или бази данни, всички задачи като свързване и манипулиране на Elasticsearch се изпълняват с помощта на REST API
, което означава, че почти всяка заявка или команда, изпълнена на вашия Elasticsearch възел, е проста HTTP заявка към конкретен URL.
В зависимост от HTTP verb
изпратено и URL адреса на този глагол, на който е изпратен, Elasticsearch може да извърши огромно разнообразие от действия върху възела или дори клъстера.
Структурата на URL адреса на Elasticsearch REST API
На най-основното ниво, за да изпълните команда в Elasticsearch, ще трябва да изпратите HTTP глагол до URL адреса на вашия Elasticsearch възел. За разработка обикновено това е localhost:9200
.
В повечето В случаите най-простият метод за изпращане на заявка към REST API на Elasticsearch е чрез полезния инструмент от командния ред, cURL
, който е прост инструмент, използван за прехвърляне на почти всякакъв вид интернет данни.
Например, за да изброите всички indices
, можете да изпълните следния curl
команда от подканата на обвивката на вашия сървър за разработка (както е посочено в официалната документация:
$ curl 'localhost:9200/_cat/indices?v'
health index pri rep docs.count docs.deleted bookstore.size pri.bookstore.size
Тук имаме достъп до cat API
(обозначено с водещия _
долно черта) и преглед на indices
, което показва напречно сечение на всеки индекс в клъстера.
Индекси, типове, документи и свойства
С даден пример можем да изследваме по-подробно специфичната структура на Elasticsearch REST API, които най-често ще се състоят от три структурирани компонента, index
, type
и document
:
localhost:9200/index/type/document
index
е родителската структура и най-просто се смята за database
който съдържа много types
. И index
може да представлява всяка концепция, но често представлява цяла система от компоненти като shop
или bookstore
.
Types
се съдържат в index
и са подобни на tables
на базата данни , с всеки type
представляваща колекция от подобни обекти (като shirt
или book
).
И накрая, document
е единичен екземпляр или представяне на обект от родителския type
. По този начин книгата „Хобитът“ може да съществува като книга type
в index
имекнижарница .
Изтриване на данни от Elasticsearch
Като изключим основния синтаксис на REST API, можем да проучим как да извършваме конкретни действия като изтриване на данни.
Изтриване на единичен документ
Като вземем нашия основен синтаксис, както се вижда по-горе, трябва да използваме curl
и изпратете DELETE
HTTP глагол, използвайки -XDELETE
опция:
$ curl -XDELETE 'localhost:9200/index/type/document'
Например, за да изтриете нашата по-горе спомената книга document
, може да използваме следната команда:
$ curl -XDELETE 'localhost:9200/bookstore/book/1'
Това ще изтрие document
с ID
от 1
от book
type
който е в bookstore
index
.
Изтриване на тип
Както може би се досещате, с леко разширяване на синтаксиса, ние можем да премахнем цял type
. Тук изтриваме book
type
:
$ curl -XDELETE 'localhost:9200/bookstore/book'
Изтриване на индекс
И накрая, ако искаме да изтрием цял index
, това може да стане с помощта на същия синтаксис както преди:
$ curl -XDELETE 'localhost:9200/bookstore'