index
简介
在elasticsearch中,index与关系型数据库的表是对应的,doc与关系型数据库的行对应;elasticsearch中存放数据到index的操作成为indexing。在elasticsearch中不需要提前定义index的结构,可以直接向index存放数据,存放的数据的时候格式是name:value(字段名:字段值)。
index api
#创建索引
put /dsqtest0001
#查看索引信息
get /dsqtest0001
get /dsqtest0001/_settings
get /dsqtest0001/stats
get /dsqtest0001/_settings/index.number_of_replicas
#查看所有索引大小和索引状态
GET /_cat/indices?v
#插入数据
post /dsqtest0001/_doc
{
"name":"dsq",
"age":31,
"high":174.0
}
#插入数据会生成mapping,与关系型数据库里面的表的字段名和字段类型对应
#查看数据
get /dsqtest0001/_search?format=yaml
查询测试
插入数据参考上面插入数据的命令,根据需要调整插入数据
bool查询
get /dsqtest0001/_search
{
"query":{
"bool":{
"must":{
"term":{"name":"dsq"}
}
}
}
}
插入的测试数据name字段为dsq,dsq2,dsq 3,ds4q
可以匹配的有dsq,dsq 3
说明是将字符串分割成单词之后进行匹配的,包含查询的单词就行
filter查询
get /dsqtest0001/_search
{
"query":{
"bool":{
"must":{
"term":{"name":"dsq"}
}
}
}
}
查询结果与上面must相同,可以匹配的有dsq,dsq 3
只是filter没有_score字段,不需要计算匹配程度_score,所以比must查询会快
总结:bool查询就是查询某个字段是否包含指定单词

浙公网安备 33010602011771号