大数据培训技术Search API(Request Body Search)

Search API(Request Body Search)

  • Match Query(字段类查询)

对字段作全文检索,最基本和常用的查询类型(不支持多字段查询)

GET test_search_index/_search

{

  “profile”:true,                  # 显示执行计划

  “query”:{

    “match”: {

      “username”: “alfred way”

    }

  }

}

通过operator参数可以控制单词间的匹配关系,可选项为or和and

  • Match_phrase(词语查询)

要求词语的顺序

GET test_search_index/_search

{

  “query”: {

    “match_phrase”: {

      “job”: “java engineer”

    }

  }

}

Slop:允许有几个词的差异

GET test_search_index/_search

{

  “query”: {

    “match_phrase”: {

      “job”: {

        “query”:”java engineer”,

        “slop”:1

      }

    }

  }

}

  • 字符查询

可以完成多字段—>匹配相同查询规则

GET test_search_index/_search

{

  “query”:{

    “query_string”: {

      “default_field”: “username”,

      “query”: “alfred OR (java AND ruby)”

    }

  }

}

GET test_search_index/_search

{

  “query”:{

    “query_string”: {

      “fields”: [“username”,”job”],

      “query”: “alfred OR (java AND ruby)”

    }

  }

}

  • 不分词查询(根据分词具体情况查询)

GET test_search_index/_search

{

  “query”: {

    “term”: {

      “username”: {

        “value”: “alfred way”

      }

    }

  }

}

GET test_search_index/_search

{

  “query”: {

    “terms”: {

      “username”: [

        “alfred”,

        “way”

      ]

    }

  }

}

  • Range查询

GET test_search_index/_search

{

  “query”: {

    “range”: {

      “age”: {

        “gte”: 10,

        “lte”: 20

      }

    }

  }

}

  • Bool Query

filter

只过滤符合条件的文档,不计算相关性得分

must

文档必须符合must中的所有条件,会影响相关性得分

must_not

文档中必须不符合must_not中的所有条件

should

文档可以符合should中的条件,会影响相关性得分

语法:

Filter:只过滤符合条件文档,不会影响相关性算分,同时ES对filter有缓存功能,提高查询效率

GET test_search_index/_search

{

  “query”: {

    “bool”: {

      “filter”: [

        {

          “match”:{

            “username”:”alfred”

          }

        }

      ]

    }

  }

}

GET test_search_index/_search

{

  “query”: {

    “bool”: {

      “filter”: [

        {

          “term”:{

            “username”:”alfred”

          }

        },

        {

          “term”:{

            “job”:”jav”

          }

        }

      ]

    }

  }

}

Must:影响相关性算分

GET test_search_index/_search

{

  “query”: {

    “bool”: {

      “must”: [

        {

          “match”: {

            “username”: “alfred”

          }

        },

        {

          “match”: {

            “job”: “java”

          }

        }

      ]

    }

  }

}

Should包含其中一个或多个

包含其中一个

GET test_search_index/_search

{

  “query”: {

    “bool”: {

      “should”: [

        {

          “match”: {

            “username”: “alfred”

          }

        },

        {

          “match”: {

            “job”: “ruby”

          }

        }

      ],

      “minimum_should_match”: 2

    }

  }

}

想要了解跟多关于大数据培训课程内容欢迎关注尚硅谷java培训,尚硅谷除了这些技术文章外还有免费的高质量java培训课程视频供广大学员下载学习。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值