笔记十: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"
      }
      }
      }
es
本作品采用《CC 协议》,转载必须注明作者和本文链接
快乐就是解决一个又一个的问题!
CrazyZard
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!