一 模拟造数
1.1 模拟数据
添加数据修改数据的请求方式为post
http://localhost:9200/student/_doc/101
{
"name":"zhangsan",
"nickname":"zhangsan",
"sex":"男",
"age":30,
"createTime":"2022-10-22 23:10:12"
}
http://localhost:9200/student/_doc/102
{
"name":"lisi",
"nickname":"lisi",
"sex":"男",
"age":20,
"createTime":"2023-02-01 12:03:04"
}
http://localhost:9200/student/_doc/103
{
"name":"wangwu",
"nickname":"wangwu",
"sex":"女",
"age":40,
"createTime":"2023-03-05 12:45:23"
}
http://localhost:9200/student/_doc/104
{
"name":"zhangsan1",
"nickname":"zhangsan1",
"sex":"女",
"age":50,
"createTime":"2023-04-09 12:45:12"
}
http://localhost:9200/student/_doc/105
{
"name":"zhangsan2",
"nickname":"zhangsan2",
"sex":"女",
"age":30,
"createTime":"2022-05-01 10:08:02"
}
1.2 修改数据覆盖旧数据*
1.通过id修改数据: 修改前
2.修改中:
3.修改后
二 常用操作
2.1 查询全部数据
{
"query": {
"match_all": {}
}
}
2.2 匹配查询数据(match)
match 匹配类型查询,会把查询条件进行分词,然后进行查询,多个词条之间是 or 的关系。
{
"query": {
"match": {
"name":"zhangsan"
}
}
}
2.3 字段匹配
{"query": {
"multi_match": {
"query": "zhangsan",
"fields": ["name","nickname"]
}
}
}
2.4 精确查询(term)
term 查询,精确的关键词匹配查询,不对查询条件进行分词。
{
"query": {
"term": {
"name": {
"value": "wangwu"
}
}
}
}
2.5 精确查询(多-term)
term 查询,精确的关键词匹配查询,不对查询条件进行分词。
{
"query": {
"terms": {
"name": ["zhangsan","lisi"]
}
}
}
2.6 返回指定的字段
includes:来指定想要显示的字段
excludes:来指定不想要显示的字段
{
"_source": {
"includes": ["name","age"]
},
"query": {
"terms": {
"nickname": ["zhangsan"]
}
}
}
2.7 返回指定的字段
`bool`把各种其它查询通过`must`(必须 )、`must_not`(必须不)、`should`(应该)的方
式进行组合
http://localhost:9200/student/_search
{"query": {
"bool": {
"must": [
{
"match": {
"name": "zhangsan"
}
}
],
"must_not": [
{
"match": {
"age": "40"
}
}
]
}
}
}
2.8 组合查询
查询语句:
{
"query": {
"range": {
"age": {
"gte": 30,
"lte": 35
}
}
}
}
2.9 fuzzy组合查询
为了找到相似的术语,fuzzy 查询会在指定的编辑距离内创建一组搜索词的所有可能的变体
或扩展。然后查询返回每个扩展的完全匹配。
通过 fuzziness 修改编辑距离。一般使用默认值 AUTO,根据术语的长度生成编辑距离
{
"query": {
"fuzzy": {
"name": {
"value": "zhangsan"
}
}
}
}
2.10 sort排序
sort 可以让我们按照不同的字段进行排序,并且通过 order 指定排序的方式。desc 降序,asc 升序。
"query": {
"match": {
"name":"zhangsan"
}
},
"sort": [{
"age": {
"order":"desc"
}
}]
}