Elasticsearch DSL语言查询与过滤
晨曦 发布于 阅读:147 Elasticsearch
Elasticsearch中查询有两种方式:
1.简易版查询
2.JSON完整的请求体,称为结构化查询(DSL)
DSL是发送POST请求传JSON格式数据进行查询,灵活性高。
Term与Match查询区别:
Term:不会对该字段进行分词查询,采用精确匹配查询方式
Match:根据该字段的分词器进行分词查询,采用模糊查询方式
创建测试数据
PUT 索引/类型/id
PUT chenxi/user/1
{
"name":"zhangsan",
"age" : 1,
"hobby": "唱歌"
}
PUT chenxi/user/2
{
"name":"lisi",
"age" : 2,
"hobby": "打篮球"
}
PUT chenxi/user/3
{
"name":"wangwu",
"age" : 3,
"hobby": "打乒乓球"
}
查询所有document,验证是否创建成功
GET chenxi/user/_search
DSL查询
Match精确匹配
GET chenxi/user/_search
{
"query":{
"term": {
"name":"zhang"
}
}
}
DSL查询
Term模糊查询
GET chenxi/user/_search
{
"query":{
"term": {
"name":"zhang"
}
}
}
GET chenxi/user/_search
{
""
"query":{
"term": {
"name":"zhang"
}
}
}