mapping:es中会给每个文档的每个字段一个数据类型,es会默认的帮我们完成这一步
但是若我们需要自己定义一个mapping,也就是一个映射关系,我们需要自己定义:
settings表示对该index的设置:该index有三个shard,每个shard有一个副本作为备份
query查询:
term和terms不知道分词器的存在,你所查找的内容,es都会将他视作一个完整的字段去查询,适合关键子查询
match查询:
match查询会去匹配你所查找的内容在倒排索引中是否包含,若包含,就返回,跟term,terms不同
指定查询某个字段:
范围查询:使用range关键字 gt表示大于 ,gte表示大于等于
GET account/index/_search
{
"query": {
"range": {
"age": {
"gt": 21,
"lt": 30
}
}
}
}
bool查询:must,shuld,must_not
match也可以是term,range等
GET account/index/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"name": "lc"
}
}
]
}
}
}
fuzzy模糊查询:
GET /account/index/_search
{
"query": {
"fuzzy": {
"des": "boy"
}
}
}
自定义mapping:也就是定义type的类型
PUT /users
{
"settings": {
"number_of_shards": 5,
"number_of_replicas": 1
},
"mappings": {
"user":{
"properties": {
"name":{"type":"text"},
"age":{"type": "integer"},
"first_name":{"type": "text"},
"second_name":{"type": "text"}
}
}
}
}
下面的做法会给user添加一个mapping:
put users/user/1
{
"name":"lc",
"ppp":"pp"
}