笔记十:Query String & Simple Query String
Query String Query
类似URI Query – 把查询条件放在POST里面
//准备工作 PUT /users/_doc/3 { "name" : "Li Sunke", "about": "php,elasticsearch,redis,nginx,swoole" } PUT /users/_doc/4 { "name" : "Qu Sunke", "about": "mysql,php" } //query_string POST /users/_search { "query": { "query_string": { "query": "Li AND Sunke", "default_field": "name" } } } //返回1个结果 "hits" : [ { "_index" : "users", "_type" : "_doc", "_id" : "3", "_score" : 0.87546873, "_source" : { "name" : "Li Sunke", "about" : "php,elasticsearch,redis,nginx,swoole" } } ] //query string 支持分组查询多个字段 // 返回 doc_3 POST /users/_search { "query": { "query_string": { "fields": ["name","about"], "query": "(Li AND Sunke) OR (php AND nginx)" } } }
Simple Query String Query
类似Query String ,但是会忽略错误的语法同时只支持部分查询语句
不支持 AND OR NOT ,但会当作字符串处理
Term 之间默认的关系是OR,可以指定Operator
支持 部分逻辑
- 替代 AND
- | 替代OR
- -替代 NOT
// Simple Query 默认的operator 是 Or // AND 会当做一个字符串,所以会 3个字段OR查询 POST /users/_search { "query": { "simple_query_string": { "query": "Li AND Sunke", "fields": ["name"], "default_operator": "AND" } } } // default_operator 是 OR //只返回一条结果 POST /users/_search { "query": { "simple_query_string": { "query": "Li Sunke", "fields": ["name"], "default_operator": "AND" } } }
本作品采用《CC 协议》,转载必须注明作者和本文链接