文档结构
PUT /students
{
"mappings":{
"properties":{
"id": {
"type": "integer",
"index": true
},
"name": {
"type": "text",
"store": true,
"index": true,
"analyzer": "ik_smart"
},
"info": {
"type": "text",
"store": true,
"index": true,
"analyzer": "ik_smart"
}
}
}
}
match_all
描述:查询所有文档
GET /students/_search
{
"query": {
"match_all": {}
}
}
match
描述:全文检索,将查询条件分词后搜索
GET /students/_search
{
"query": {
"match": {
"info": "wunaiieq"//搜索字段:搜索条件
}
}
}
描述:带纠错功能(中文效果较弱)
GET /students/_search
{
"query": {
"match": {
"info": {
"query": "loveaa",//搜索条件
"fuzziness": 2//允许错误字数
}
}
}
}
match_phrase
描述:短语检索,搜索条件不做任何分词解析,在搜索字段对应的倒排索引中精确匹配
GET /students/_search
{
"query": {
"match_phrase": {
"info": "喜欢"//查询条件,必须是关键词短语,由于不进行分词,因此,如果输入的是句子,则无法正常查找(除非一样)
}
}
}
term/terms
描述:单词/词组匹配,搜索条件不做任何分词解析,在搜索字段对应的倒排索引中精确匹配,和match_phrase方法类似
GET /students/_search
{
"query": {
"term": {
"info": "成绩"
}
}
}
GET /students/_search
{
"query": {
"terms": {
"info": ["成绩","喜欢"]//terms后面可以跟多个查询条件
}
}
}
range
描述:范围搜素,对数字类型的字段进行范围搜索
GET /students/_search
{
"query": {
"range": {
"id": { //这个id是文档的字段属性
"gte": 1, //起始值(包含值1)
"lte": 20 //最终的值(包含值20)
}
}
}
}
复合搜索
描述:多个查询条件,must,must_not,should,满足对应的条件即可
GET /students/_search
{
"query": {
"bool": {
"must": [//必须满足的查询条件
{
"term": {
"info": "成绩"
}
},
{
"range": {
"id": {
"gte": 1,
"lte": 3
}
}
}
],
"must_not": [//必须不满足的查询条件
{
"term": {
"id": 999
}
}
],
"should": [//只要满足内部至少一个查询条件即可
{
"term": {
"id": 666
}
},
{
"term": {
"id": 3
}
}
]
}
}
}
结果排序
描述:默认使用相关度分数实现排序,当然允许通过搜索语法进行自定义
示例(自定义排序)
不能对text字段做排序,如果需要排序字符串可以使用keyword类型
GET /students/_search
{
"query": {
"match_all": {
}
},
"sort": [
{
"id": {
"order": "desc"
}
}
]
}
分页查询
描述:分页查询
GET /students/_search
{
"query": {
"match_all": {}
},
"from": 1,//从第1个开始查询(不包含第一条)
"size": 1//每次查询显示1条数据
}
高亮查询
描述:返回查询结果时,如果匹配到输入的提示信息,则会给返回结果中的此内容增加一个标签(后续可用css之类的内容对标签进行高亮提示)
GET /students/_search
{
"query": {
"match": {
"info": "喜欢"
}
},
"highlight": {
"fields": {
"info": {
"fragment_size": 20, //返回高亮数据的最大长度
"number_of_fragments": 5 //返回结果中最多可以包含几段不连续的文字
}
},
"pre_tags":"<wunaiieq>", //自定义标签
"post_tags":"</wunaiieq>"
}
}
SQL语句查询
描述:这是测试功能,主要应用在ES7之后
暂时不学习,后续需要补上