Hay algunos conceptos que son fundamentales para Elasticsearch. Comprender estos conceptos desde el principio ayudará enormemente a facilitar el proceso de aprendizaje.
Elasticsearch > Índices > Types > Documents > Fields
Un nodo es un servidor que forma parte del clúster, almacena los datos, y participa en las capacidades de indexación y búsqueda del cluster.
Un índice es una colección de documentos que tienen características algo similares.
Dentro de un índice, se pueden seleccionar uno o más tipos. Un tipo es una categoría / partición lógica de su índice de cuya semántica es totalmente suya. En general, un tipo se define para documentos con un conjunto de campos comunes.
Un documento es una unidad básica de información que puede ser indexado. Este documento se expresa en JSON (JavaScript Object Notation), que es un formato de intercambio de datos de Internet ubicua.
Un índice puede almacenar una gran cantidad de datos que puede exceder los límites de hardware de un solo nodo.
Para resolver este problema, Elasticsearch ofrece la posibilidad de subdividir el índice en varios trozos llamados fragmentos. Cuando se crea un índice, sólo tiene que definir el número de fragmentos que desee. Cada fragmento es en sí mismo un “índice” totalmente funcional e independiente que se puede alojar en cualquier nodo del clúster.
Sharding es importante por dos razones principales:
La replicación es importante por dos razones principales:
Vamos a empezar con un chequeo, para comprobar el estado del clúster, vamos a utilizar la _catAPI
Añadimos pretty
final de la llamada para indicarle que debe bastante-imprimir la respuesta JSON (si lo hay).
ES agrega su propia metadata:
_id
_type
_source
_all
_timesstamp
_ttl
_size
Respuesta
201 created, se creo un nuevo documento 200 se actualizo 404 not found
{
"ok" : true,
"_index" :
"_type" :
"_id" :
"_version" :
}
curl -XGET 'search-es:9200/_cat/health?v&pretty'
curl -XGET 'search-es:9200/_cat/health?v&pretty'
epoch timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks
1482455962 01:19:22 elasticsearch yellow 1 1 10 10 0 0 10 0
curl -XGET 'search-es:9200/_cat/nodos?v&pretty'
curl -XGET 'search-es:9200/_cat/indices?v&pretty'
curl -XGET 'search-es:9200/_cat/indices?v&pretty'
health status index pri rep docs.count docs.deleted store.size pri.store.size
yellow open article 5 1 1 0 3.1kb 3.1kb
yellow open products 5 1 1 0 3kb 3kb
Al indexar, la parte ID es opcional. Si no se especifica, Elasticsearch generará un ID aleatorio y luego utilizarlo para indexar el documento. El actual ID Elasticsearch genera (o lo que sea que se especifica explícitamente en los ejemplos anteriores).
curl -XPOST "search-es:9200/article/news/1" -d '{ "title" : "Ejemplo titulo" }'
or
curl -XPOST 'search-es:9200/article/news?' -d '{ "title" : "Jane Doe" }'
curl -XGET 'search-es:9200/article/news/1'
curl -XDELETE 'search-es:9200/documents_development'
curl -XPOST 'localhost:9200/article/news/1/_update?' -d'
{
"doc": { "title": "Jane Doe" }
}'
curl -XGET 'search-es:9200/article/_search?p=Ejemplo'