- 模糊匹配
'''
GET index/type/_search
{
"query":{
"match":{
"name": "xxxxxxx信息"
}
},
"_source":["xxxxr字段","yyy字段"], #结果返回字段
"sort":[{
"xxxx字段": {
"order":"desc" #降序,使用sort会使得score优先级null
}
}],
"from":numberx,#从第几个数据开始(数据下标从0开始)
"size":numbery #返多少条数据
}
# 查询结果字段hit:score分数,加具体文档信息
'''
- 布尔查询
'''
GET index/type/_search
{
"query":{
"bool":{
"must": [
{
"match":{
"name": "xxxxxxx信息"
},
"match":{
"age": "xxxxxxx信息"
}
}
}
}
}
# must对应and
# should对应or
# must_not对应非not
'''
- 过滤器
'''
GET index/type/_search
{
"query":{
"bool":{
"must": [
{
"match":{
"name": "xxxxxxx信息"
}
}
}],
"filter":{
"range":{
"xxx字段" :{
"gte":numberx,#大于等于
"lte":numbery #小于等于
}
}
}
}
}
'''
- query match (多条件使用空格隔开,直接写在语法中)
'''
"query":{
"match":{
"name": "xxxxxxx信息 yyyyy信息"
}
},
'''
- term精准匹配
- match模糊匹配
- term和match只管传入的查询条件是否分词,比如狂神用match被分词成狂和神两个词进行查询,term不分词就直接用狂神进行查询
- 字符串类型可分为text和keywork类型。keywork类型不可能的被分词,只能成为整体
- term的意思是我们搜索的词条不进行分词,keywork的意思是我们存储的信息不进行分词
- 高亮查询
'''
GET 索引名/类型名/_search
{
"query":{
"match":{
"name": "xxxxxxx信息"
}
},
"highlight":{
"filelds":{
"name":{}
}
}
}
'''
- 以上功能,Mysql也能做,但es效率高