介绍
本章介绍Query String和Simple Query String,使用demo分别介绍两种语法
- 数据准备
先插入两份数据
PUT /users/_doc/1
{
"name":"Li DP",
"about":"golang, C++, elasticsearch"
}
PUT /users/_doc/2
{
"name":"Zhang DP",
"about":"Java"
}
- Query String
POST users/_search
{
"query": {
"query_string": {
"default_field": "name",
"query": "Li AND DP"
}
}
}
其中default_field URI里面的df用法一直,用于确定搜索字段
返回结果
我们还可以这么玩
POST users/_search
{
"query": {
"query_string": {
"fields":["name","about"],
"query": "(Li AND DP) OR (golang AND Elasticsearch)"
}
}
}
返回结果
- Simple Query String
POST users/_search
{
"query": {
"simple_query_string": {
"query": "Li AND DP",
"fields": ["name"]
}
}
}
返回结果
从返回结果中我们可以看出Simple Query String默认是OR的;上面的AND 会被默认成一个term
但是我们可以这样
POST users/_search
{
"query": {
"simple_query_string": {
"query": "Li DP",
"fields": ["name"],
"default_operator": "AND"
}
}
}
返回结果
这就是我们预期的结果了
小结
本章通过对比的方法介绍了Query String&Simple Query String的不同,使用实际的demo后我们发现了Simple Query String是默认OR的
网友评论