Cree una biblioteca de índices es, que equivale a crear una tabla
from elasticsearch import Elasticsearch
from elasticsearch. helpers import bulk
es = Elasticsearch( hosts= 'localhost:9200' )
es. indices. create( index= 'my' , ignore= 400 )
Inserte un dato en la biblioteca de índices es
data = {
"name" : "小明" , "age" : "8" , "gender" : "男" }
res = es. index( index= 'my' , doc_type= 'doc' , body= data)
Lote de datos de inserción en la biblioteca de índices
from elasticsearch. helpers import bulk
data_lis = [ {
"name" : "小红" , "age" : "8" , "gender" : "女" } , {
"name" : "小王" , "age" : "8" , "gender" : "男" } ]
res2 = bulk( es, data_lis, index= 'my' )
Consultar todos los datos
data = es. search( index= 'my' )
body = {
'query' : {
'match_all' : {
}
}
}
data = es. search( index= 'my' , body= body)
término: datos de consulta basados en el valor de un campo
body2 = {
"query" : {
"term" : {
"age" : 8 }
}
}
data_list = es. search( index= 'my' , body= body2)
términos: datos de consulta basados en múltiples valores de un campo
body3 = {
"query" : {
"terms" : {
"age:[ 8 , 10 ] } } }
age_list = es. search( index= 'my' , body= body3)
coincidencia: consulta basada en un campo que contiene un determinado carácter
body4 = {
"query" : {
"match" : {
"name" : "红" }
}
}
red_list = es. search( index= 'my' , body= body4)
multi_match: consulta basada en múltiples campos que contienen un determinado carácter
body = {
"query" : {
"multi_match" : {
"query" : "红" ,
"fields" : [ "name" , "addr" ]
}
}
}
es. search( index= "my" , body= body)
match_phrase: tiltle coincidente contiene zorro rápido, los dos campos deben ser adyacentes
body = {
"query" : {
"match_phrase" : {
"title" : {
"query" : "quick fox" ,
"slop" : 1
}
}
}
}
es. search( index= "my" , body= body)
Consulta basada en id
body = {
"query" : {
"ids" : {
"type" : "doc" ,
"values" : [ "vxGrGGwBv1w0KXkAjsEd" ,
"wBG_GGwBv1w0KXkAcsEn"
]
}
} }
h = es. search( index= "my" , body= body)
Consulta compuesta
{
"query" : {
"bool" : {
"must" : [ {
"term" : {
"name" : "小红"
}
} , {
"term" : {
"age" : 18
}
} ]
}
}
}
es. search( index= 'my' , body= body)
rango: consulta de rango
body = {
"query" : {
"range" : {
"age" : {
"gte" : 18 ,
"lte" : 30
}
}
}
}
es. search( index= "my_index" , doc_type= "test_type" , body= body)
Consulta de sector
body = {
"query" : {
"match_all" : {
}
} ,
"from" : 2 ,
"size" : 4
}
es. search( index= "my" , body= body)
Consulta comodín
body = {
"query" :
{
"wildcard" :
{
"name" : "*红"
}
}
}
es. search( index= "my" , body= body)
Consulta de prefijo
body = {
"query" : {
"prefix" : {
"name" : "李"
}
}
}
es. search( index= 'my' , body= body)
existe: consulta si un campo no es un dato nulo
body = {
"query" : {
"bool" : {
"must" : {
"exists" : {
"field" : "name"
}
}
}
}
}
es. search( index= 'my' , body= body)
Establecer el peso del campo de consulta
body = {
"query" : {
"multi_match" : {
"query" : "明 红" ,
"field" : [ "name^2" , 'last_name^1.5' , "first_name^0.9" ]
}
}
}
es. search( index= 'my' , body= body)
Clasificar
body = {
"query" : {
"match_all" : {
}
} ,
"sort" : {
"age" : {
"order" : "asc"
}
}
}
body = {
"query" : {
"match_all" : {
}
} ,
"sort" : [ {
"age" : {
"order" : "asc"
}
} , {
"name" : {
"order" : "asc"
}
} ] ,
}
es. search( index= 'my' , body= body)
contar ejecutar la consulta y obtener el número de coincidencias de consulta
body = {
"query" : {
"prefix" : {
"name" : "李"
}
}
}
es. count( index= 'my' , body= body)
aggs: consulta agregada para obtener la edad más avanzada
body = {
"query" : {
"match_all" : {
}
} ,
"aggs" : {
"max_age" : {
"max" : {
"field" : "age"
}
}
}
}
es. search( index= 'my' , body= body)
aggs: consulta agregada para obtener la edad más pequeña
body = {
"query" : {
"match_all" : {
}
} ,
"aggs" : {
"min_age" : {
"min" : {
"field" : "age"
}
}
}
}
es. search( index= 'my' , body= body)
aggs: consulta agregada para obtener la antigüedad de la suma
body = {
"query" : {
"match_all" : {
}
} ,
"aggs" : {
"sum_age" : {
"sum" : {
"field" : "age"
}
}
}
}
es. search( index= 'my' , body= body)
aggs: consulta agregada para obtener la edad promedio
body = {
"query" : {
"match_all" : {
}
} ,
"aggs" : {
"avg_age" : {
"avg" : {
"field" : "age"
}
}
}
}
es. search( index= 'my' , body= body)