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查询就是查询某个字段是否包含指定单词

posted @ 2023-08-18 17:55  董少奇  阅读(63)  评论(0)    收藏  举报