ES中提供了一种强大的检索数据方式,这种检索方式称之为Query DSL
Query DSL
是利用Rest API传递JSON格式的请求体(Request Body)数据
与ES进行交互,这种方式的丰富查询语法
让ES检索变得更强大,更简洁
。
- # GET /索引名/_doc/_search {json格式请求体数据}
- # GET /索引名/_search {json格式请求体数据}
测试数据
- # 1.创建索引 映射
- PUT /products/
- {
- "mappings": {
- "properties": {
- "title":{
- "type": "keyword"
- },
- "price":{
- "type": "double"
- },
- "created_at":{
- "type":"date"
- },
- "description":{
- "type":"text"
- }
- }
- }
- }
- # 2.测试数据
- PUT /products/_doc/_bulk
- {"index":{}}
- {"title":"iphone12 pro","price":8999,"created_at":"2020-10-23","description":"iPhone 12 Pro采用超瓷晶面板和亚光质感玻璃背板,搭配不锈钢边框,有银色、石墨色、金色、海蓝色四种颜色。宽度:71.5毫米,高度:146.7毫米,厚度:7.4毫米,重量:187克"}
- {"index":{}}
- {"title":"iphone12","price":4999,"created_at":"2020-10-23","description":"iPhone 12 高度:146.7毫米;宽度:71.5毫米;厚度:7.4毫米;重量:162克(5.73盎司) [5] 。iPhone 12设计采用了离子玻璃,以及7000系列铝金属外壳。"}
- {"index":{}}
- {"title":"iphone13","price":6000,"created_at":"2021-09-15","description":"iPhone 13屏幕采用6.1英寸OLED屏幕;高度约146.7毫米,宽度约71.5毫米,厚度约7.65毫米,重量约173克。"}
- {"index":{}}
- {"title":"iphone13 pro","price":8999,"created_at":"2021-09-15","description":"iPhone 13Pro搭载A15 Bionic芯片,拥有四种配色,支持5G。有128G、256G、512G、1T可选,售价为999美元起。"}
查询所有[match_all]
match_all关键字: 返回索引中的全部文档
- GET /products/_search
- {
- "query": {
- "match_all": {}
- }
- }
关键词查询(term)
term 关键字: 用来使用关键词查询
- GET /products/_search
- {
- "query": {
- "term": {
- "price": {
- "value": 4999
- }
- }
- }
- }
NOTE1: 通过使用term查询得知ES中默认使用分词器为
标准分词器(StandardAnalyzer),标准分词器对于英文单词分词,对于中文单字分词
。
NOTE2: 通过使用term查询得知,
在ES的Mapping Type 中 keyword , date ,integer, long , double , boolean or ip 这些类型不分词,只有text类型分词
。