中核工建设集团网站,新网站优化,建设银行防钓鱼网站,vivo即将发布的新手机文章目录 1.索引库操作创建索引库#xff1a;删除索引库#xff1a;查询索引库#xff1a;修改索引库#xff1a;总结 2.文档操作创建文档#xff1a;查询文档#xff1a;删除文档#xff1a;全量修改文档#xff1a;增量修改文档#xff1a;总结 3.DSL查询语法#… 文章目录 1.索引库操作创建索引库删除索引库查询索引库修改索引库总结 2.文档操作创建文档查询文档删除文档全量修改文档增量修改文档总结 3.DSL查询语法前4个由query属性包裹)1.全文查询3种match_allmatchmulti_match 2.精确查询2种termrange 3.地理查询2种geo-bounding_boxgeo_distance 4.复合查询2种function score QueryBool Query 5.搜索结果处理3种同级属性sort排序from/size分页higlight高亮 6.总结(4个顶级属性) 1.索引库操作
创建索引库
PUT /索引库名
{mapping:{properties:{字段名:{type:字段的类型}//..略 }},
}//提高查询效率的方式
//将字段名1、2加入到all那么查询直接搜索all一个字段效率提高2倍
PUT /索引库名
{mapping:{properties:{字段名1:{type:字段的类型,copy_to:all},字段名2:{type:字段的类型,copy_to:all},all:{type:text,analyzer:ik_max_word} }},
}
//搭配查询使用
GET /索引库名
{query:{match:{all:搜索内容}}
}删除索引库
DELETE /索引库名查询索引库
GET /索引库名修改索引库
PUT /索引库名/_mapping
{properties:{新字段名:{type:类型}}
}总结
只有创建、修改需要请求体
2.文档操作
创建文档
POST /索引库名/_doc/文档id
{字段1:,字段2:,字段3:{字段3-1:,字段3-2:}
}查询文档
GET /索引名/_doc/文档id删除文档
DELETE /索引库名/_doc/文档id全量修改文档
//若文档id不存在就是新增操作,否则就是全部修改PUT /索引库名/ _doc/文档id
{字段1:,字段2:
}增量修改文档
POST /索引库名/ _update/文档id
{doc:{需要修改的字段名:新的值}
}总结
只有创建、修改需要请求体
3.DSL查询语法前4个由query属性包裹)
1.全文查询3种
match_all
// 1.查询所有
GET /索引库名/_search
{query: {match_all: {}}
}match
// 2.单个字段查询建议创建文档的时候把多个要查询的字段copy_to到一个字段all提高查询性能
//all字段名
GET /索引库名/_search
{query: {match: {all: 乡愁}}
}multi_match
// 3.多个字段查询
GET /索引库名/_search
{query: {multi_match: {query: 需要查询内容,fields: [字段1,字段2]}}
}2.精确查询2种
term
# 1.根据词条精确值查询
GET /索引库名/_search
{query: {term: {字段名1: {value: 内容}}}
}range
# 2.根据值得范围查询
#有e结尾代表
GET /mingyue/_search
{query: {range: {age: {gt: 10,lte: 20}}}
}3.地理查询2种
geo-bounding_box
// 1.查询geo_point值落在某个矩形范文内得所有文档大白话就是两个点相连形成的矩形
// 用的比较少
GET /索引库名/_search
{query:{geo-bounding_box{geo_point类型的字段:{top_left:{lat:31.1,lon:121.9},buttom_right:{lat:38.1,lon:121.9}}}}
}geo_distance
//2.查询指定中心点范围内得所有文档
// 用的多
GET /索引库名/_search
{query:{geo_distance:{distance:15km,geo_point类型的字段:经度,纬度}}
}
4.复合查询2种
function score Query
// 1.function score Query
GET /索引库名/_search
{query:{function_score:{# 原始查询规则query:{match:{字段名:内容}},functions:[{filter:{term:{id:1}},# 过滤条件weight:10 #算分函数}],boost_mode:multiply # 算分函数}}
}Bool Query
// 2.Bool Query 4个属性
GET /索引库名/_search
{query:{bool:{must:[#类似与{term:{字段名1:内容}}],should:[#类似或{term:{字段名2:内容1}}{term:{字段名2:内容2}}],must_not:[#类似非,不参与算分,意思是不匹配500的{range:{字段名3:{lte:500}}}],filter:[#必须匹配45,不参与算分{range:{字段名4:{gte:45}}}],}}
}5.搜索结果处理3种同级属性
sort排序
// 1.排序
GET /索引库名/_search
{query:{//查询条件 略……},sort:{排序字段:排序方式,# asc desc_geo_distance:{geo_point类型的字段名:经度,纬度,geo_point类型的字段名:{ # 对象方式书写lat:经度lon:纬度},order:排序方式,unit:km# 单位}}
}from/size分页
// 2.分页
GET /索引库名/_search
{query:{//查询条件 略……},sort:{排序字段:排序方式,# asc desc},from:页码,size:条数
}higlight高亮
// 2.高亮
GET /索引库名/_search
{query:{//查询条件 略……},sort:{排序字段:排序方式,# asc desc},highlight:{fields:{# 指定要高亮的字段字段名:{require_field_match:false #搜索字段与高亮字段不一致需要加上}}},from:页码,size:条数
}6.总结(4个顶级属性)
查询语法有4个顶级属性
分别是query、sort、from/size、highlight