栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

ElasticSearch搜索引擎

ElasticSearch搜索引擎

ElasticSearch搜索引擎
  • 复杂花式搜索
  • 来自Restful访问规则
    • PUT
    • POST
    • GET
    • DELETe
  • 属性
    • _score (成绩)
    • _hit
    • 构建一个数据库(类比)
  • 复杂操作Select(排序、分页、高亮、模糊、精准查询)
    • 模糊查询
    • 筛选字段查询
    • 排序
    • 分页
    • 布尔值查询
      • must
      • should
      • must_not
      • 过滤器filter
    • 用空格隔开数据进行多条件模糊查询
    • 精确查询!
    • 高亮!

复杂花式搜索

文章转载至: 【狂神说Java】ElasticSearch7.6.x最新完整教程通俗易懂.
ElasticSearch本文下称ES对于大数据高并发时代的数据快速处理的方案,其提供的springBoot接口使用很方便,其专注于查询,分词,高亮,作用相当于数据库,默认存储类型为doc也就是文档

来自Restful访问规则 PUT

添加数据,也可以修改数据,但会造成数据覆盖

// kibanna
PUT /kuangshen/user/1    //访问格式/类型/id
{
	"name":"狂神说JAVA",
	"age":"23",
	"desc":"一顿操作猛如虎,还是我最叼"
	"tags":["技术宅","猛男","没对象"]
}
POST

修改数据,version对应修改, 如果词尾没有添加/_update 也会造成数据覆盖

// kibanna
POST /kuangshen/user/1/_update    //访问格式/类型/id/_update
{
	"age":"25"
}
GET

查询数据,此博客主要关注GET,最简化的为

// kibanna
GET/kuangshen/user/1   //访问格式/类型/id
// kibanna
GET/kuangshen/user/_search?q=name:"狂神"  //访问格式/类型/
DELETE

删除数据

// kibanna
DELETE kuangshen  //访问格式
属性 _score (成绩)

这个属性为默认的,作为权重使用,分值越高权重越高

_hit

索引和文档的信息,查询的结果总数,数据中的结果都可以遍历出来

构建一个数据库(类比)
// kibanna
PUT testdb    //访问格式/类型/id
{
	"mappings":{
		"properties":{
			"name":{
				"type":"text"   //指定字段类型
			},
			"desc":{
				"type":"keyword"   //指定字段类型
			}
		}
	}
}
复杂操作Select(排序、分页、高亮、模糊、精准查询) 模糊查询

name携带输入字符串的都会被查询出来,类似于LIKE

// kibanna
GET/kuangshen/user/_search    //访问格式/类型/id
{
	"query":{
		"match":{
			"name":"狂神"
		}
	}
}
筛选字段查询

对比起select * from我们更喜欢用select 字段 这时候就需要source

// kibanna
GET/kuangshen/user/_search    //访问格式/类型/id
{
	"query":{
		"match":{
			"name":"狂神"
		}
	},
	"_soure":["name","age"]
}

这样就只会查询name,age之后使用JAVA操作就是操作里面的key

排序

对比 ORDER BY

// kibanna
GET/kuangshen/user/_search    //访问格式/类型/id
{
	"query":{
		"match":{
			"name":"狂神"
		}
	},
	"sort":[
		{
			"name":{
				"order":"desc"
				}
	}
	]
}
分页

类比 limt

// kibanna
GET/kuangshen/user/_search    //访问格式/类型/id
{
	"query":{
		"match":{
			"name":"狂神"
		}
	},
	"from":0,//从第几条开始,数据下标还是从0开始
	"size":1//取几条
}
布尔值查询 must

所有条件都要符合 where id= 1 and name = xx

// kibanna
GET/kuangshen/user/_search    //访问格式/类型/id
{
	"query":{
		"bool":{
			"must":[
				{
					"match":{
							"name":"张三"
						}
				},
				{
					"match":{
							"age":"18"
						}
				}
			
			]
		}
	}
	
}
should

类比 or

// kibanna
GET/kuangshen/user/_search    //访问格式/类型/id
{
	"query":{
		"bool":{
			"should":[
				{
					"match":{
							"name":"张三"
						}
				},
				{
					"match":{
							"age":"18"
						}
				}
			
			]
		}
	}
	
}
must_not

取反must

// kibanna
GET/kuangshen/user/_search    //访问格式/类型/id
{
	"query":{
		"bool":{
			"must_not":[
				{
					"match":{
							"name":"张三"
						}
				},
				{
					"match":{
							"age":"18"
						}
				}
			
			]
		}
	}
	
}
过滤器filter

可以使用filter进行数据过滤

// kibanna
GET/kuangshen/user/_search    //访问格式/类型/id
{
	"query":{
		"bool":{
			"must_not":[
				{
					"match":{
							"name":"张三"
						}
				}
			],
			"filter":{
			  "range":{
			    "age":{
			    	"lt":10
			    }
			  }
			}
		}
	}
	
}
  • gt 大于
  • gte 大于等于
  • lt 小于
  • ite 小于等于
    在过滤器中可以使用多个进行限制
用空格隔开数据进行多条件模糊查询
// kibanna
GET/kuangshen/user/_search    //访问格式/类型/id
{
	"query":{
		
					"match":{
							"tags":"男 技术"
						}
				}
	}
	
}

匹配度越高权重越高,score越高

精确查询!

term查询是直接通过倒排索引指定的词条进程精确查找的!
关于分词:

  • term,直接查询精确的
  • match,会使用非瓷器进行解析!(线分析文档,然后在通过分析的文档进行查询)
    两个类型的key word
// kibanna
GET _analye
{
	"analyzeer":"keyword",//这个类型的搜索,不会将下边的字符串分割为"狂" "神"
	"text":"狂神说 JAVA" 
	
}
// kibanna
GET _analye
{
	"analyzeer":"standard",//这个类型的搜索,会将下边的字符串分割为"狂" "神"
	"text":"狂神说 JAVA" 
	
}

term

// kibanna
GET/kuangshen/user/_search    //访问格式/类型/id
{
	"query":{
		
					"term":{
							"name":"狂" //name带狂的
						}
				}
	}
	
}

keyword类型不会被解析

高亮!
// kibanna
GET/kuangshen/user/_search    //访问格式/类型/id
{
	"query":{
		"match":{
			"name":"狂神"
		}
		},
		"highlight":{
			"fields":{
				"pre_tags":"

",//结果前html "post_tags":"

"//结果后html "name":{} } } } }

其实MYSQL可以做但是效率没有这么高

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/326988.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号