ES返回数据各个字段含义
点击图片可查看完整电子表格
模糊查询
- wildcard通配符-查询文本类型(如字符串)的字段,但不能用于查询数值类型(如整数)的字段
GET /customer/_search
{
"query": {
"wildcard": {
"query.match.employer.keyword": "*E*"
}
}
}
- query_string
GET /customer/_search
{
"query": {
"query_string": {
"fields": ["employer"], (字段名称)
"query": "*E*" (值)
}
}
}
- Bool-should
GET /customer/_search
{
"query": {
"bool": {
"should": [
{ "wildcard": { "employer.keyword": "*A*" } },
{ "query_string": { "query": "*F*" } }
]
}
}
}
bool查询:must/must_not/should/filter
Filter和range查询更配噢~
4. range查询数字范围
GET /test/_search
{
"query": {
"range": {
"age": {
"gte": 1,
"lte": 24
}
}
}
}
gt大于;gte大于等于;lt小于;lte小于等于
高亮查询
使用highlight参数
GET /customer/_search
{
"query": {
"match": {
"employer": "Acme Corp"
}
},
"highlight": {
"fields": {
"employer": {}
}
}
}
高亮字段会用标签包上
精准查询
- 用match进行的是全文搜索-精确查询
{
"query": {
"match": {
"employer": "Acme Corp"
}
}
- 用match_all匹配整个文档(不建议)
{
"query": {
"match_all": {}
}
}
- 用multi_match可以查询多个字段(是需要多个字段都拥有query中的东西)
GET /test/_search
{
"query": {
"multi_match": {
"query":"王五",
"fields": ["name", "age"]
}
}
}
- 用exists/missing查询具体字段
GET /customer/_search
{
"query": {
"exists": {
"field": "age"
}
}
}
创建索引并定义字段
PUT /my_index
{
"settings": {
"analysis": {
"analyzer": {
"my_analyzer": {
"tokenizer": "ik_smart"
}
}
}
},
"mappings": {
"properties": {
"description": {
"type": "text",
"analyzer": "my_analyzer"
},
"name": {
"type": "keyword",
"index": true
}
}
}
}
删除精确数据
- _delete_by_query操作,根据查询匹配进行删除
POST /cc/_delete_by_query
{
"query": {
"term": {
"name": "aa"
}
}
}
- 清空索引数据
POST cc/_delete_by_query
{
"query": {
"match_all": {}
}
}
DELETE是删除索引,不是删除索引下的数据