一、QueryString查询方式
查询[字段]包含[内容]的文档:
索引为shop的desc属性值为慕课网:GET url/shop/_doc/_search?q=desc:慕课网
GET url/shop/_doc/_search?q=nickname:慕&q=age:25
这种查询方式称为QueryString查询方式,参数都是放在url中作为请求参数的
二、DSL搜索
QueryString用的很少,一旦参数复杂就难以构建,所以大多查询使用DSL来进行。
DSL:Domain Specific Language ,特定领域语言,基于JSON格式的数据查询,查询更灵活
1.# 查询
POST /shop/_doc/_search
{
"query": {
"match": {
"desc": "慕课网"
}
}
}
# 判断某个字段是否存在
{
"query": {
"exists": {
"field": "desc"
}
}
}
语法格式为一个json object,内容都是key-value键值对,json可以嵌套
key可以是一些es关键字,也可以是某个field字段
2.在索引中查询所有文档
GET url/shop/_doc/_search
或者
POST url/shop/_doc/_search
{
"query": {
"match_all": {}
},
"_source": ["id", "nickname", "age"]
}
3.分页查询
默认查询是10条,可分页展示
4.term/match区别
match会对要搜索的词汇进行分词后检索,而term直接把要搜索的此作为一个整的词去搜索。
terms5.match_phrash短语匹配
可匹配的语句:武汉大学的学生毕业了,有的希望继续考上研究生。
6.match扩展
operator关键字 mimimum_should_match关键字 根据主键id搜索 多字段搜索
网友评论