第46节:初识搜索引擎_快速上机动手实战Query DSL搜索语法

课程大纲

 

1、一个例子让你明白什么是Query DSL

 

GET /_search

{

    "query": {

        "match_all": {}

    }

}

 

2、Query DSL的基本语法

 

{

    QUERY_NAME: {

        ARGUMENT: VALUE,

        ARGUMENT: VALUE,...

    }

}

 

{

    QUERY_NAME: {

        FIELD_NAME: {

            ARGUMENT: VALUE,

            ARGUMENT: VALUE,...

        }

    }

}

 

示例:

 

GET /test_index/test_type/_search

{

  "query": {

    "match": {

      "test_field": "test"

    }

  }

}

 

3、如何组合多个搜索条件

 

搜索需求:title必须包含elasticsearch,content可以包含elasticsearch也可以不包含,author_id必须不为111

 

{

  "took": 1,

  "timed_out": false,

  "_shards": {

    "total": 5,

    "successful": 5,

    "failed": 0

  },

  "hits": {

    "total": 3,

    "max_score": 1,

    "hits": [

      {

        "_index": "website",

        "_type": "article",

        "_id": "2",

        "_score": 1,

        "_source": {

          "title": "my hadoop article",

          "content": "hadoop is very bad",

          "author_id": 111

        }

      },

      {

        "_index": "website",

        "_type": "article",

        "_id": "1",

        "_score": 1,

        "_source": {

          "title": "my elasticsearch article",

          "content": "es is very bad",

          "author_id": 110

        }

      },

      {

        "_index": "website",

        "_type": "article",

        "_id": "3",

        "_score": 1,

        "_source": {

          "title": "my elasticsearch article",

          "content": "es is very goods",

          "author_id": 111

        }

      }

    ]

  }

}

 

GET /website/article/_search

{

  "query": {

    "bool": {

      "must": [

        {

          "match": {

            "title": "elasticsearch"

          }

        }

      ],

      "should": [

        {

          "match": {

            "content": "elasticsearch"

          }

        }

      ],

      "must_not": [

        {

          "match": {

            "author_id": 111

          }

        }

      ]

    }

  }

}

 

GET /test_index/_search

{

    "query": {

            "bool": {

                "must": { "match":   { "name": "tom" }},

                "should": [

                    { "match":       { "hired": true }},

                    { "bool": {

                        "must":      { "match": { "personality": "good" }},

                        "must_not":  { "match": { "rude": true }}

                    }}

                ],

                "minimum_should_match": 1

            }

    }

}

 

 

 

 

猜你喜欢

转载自blog.csdn.net/qq_35524586/article/details/88095548
今日推荐