素材網(wǎng)站下載怎么做競價托管
目錄
- 1:查詢總數(shù)
- 2:查詢所有數(shù)據(jù)
- 3:查詢指定條數(shù)
- 4:根據(jù)ID查詢
- 5:一個查詢字符串搜索
- 6:match搜索
- 7:term搜索
- 8:bool搜索
- 9:must多條件匹配查詢
- 10:Should滿足一個條件查詢
- 11: must_not必須不匹配查詢
- 12:多個字段查詢內(nèi)容
- 13:一個字段查詢多個內(nèi)容
- 14:通配符和正則匹配
- 15:前綴查詢
- 16:短語匹配
- 17:范圍查詢
- 18:字段存在查詢
1:查詢總數(shù)
GET demo_person/_count
{ "query": {"match_all": {}}
}
上述用sql表示:
SELECT COUNT(*) FROM demo_person
2:查詢所有數(shù)據(jù)
GET demo_person/_search
{ "query": {"match_all": {}}
}
上述用sql表示:
SELECT * FROM demo_person
3:查詢指定條數(shù)
GET demo_person/_search
{ "size": 20, "query": {"match_all": {}}
}
上述用sql表示:
SELECT * FROM demo_person LIMIT 20
4:根據(jù)ID查詢
GET /demo_person/_doc/1?pretty
上述用sql表示:
SELECT * FROM demo_person WHERE _id = '1'
5:一個查詢字符串搜索
GET /demo_person/_search?q=last_name:Smith
上述用sql表示:
SELECT * FROM demo_person WHERE last_name = 'Smith'
6:match搜索
這是一個 Elasticsearch 查詢語句,用于在索引為 demo_person 中查詢 last_name 字段包含 “Smith” 的文檔,
特點(diǎn)先分詞,再拿詞去匹配倒排索引
GET /demo_person/_search
{"query" : {"match" : {"last_name" : "Smith"}}
}
上述用sql表示:
SELECT * FROM demo_person WHERE last_name ='Smith'
7:term搜索
這是一個 Elasticsearch 查詢語句,用于在索引為 demo_person 中查詢 last_name 字段精確匹配值為 “Smith” 的文檔。term:不分詞直接匹配詞條
GET /demo_person/_search
{"query": {"term": {"last_name": {"value": "Smith"}}}
}
上述用sql表示:
SELECT * FROM demo_person WHERE last_name = 'Smith'
8:bool搜索
這是一個 Elasticsearch 查詢語句,用于在索引為 demo_person 中查詢 last_name 字段包含 “Smith” 且 age 大于等于 30 的文檔。
must: 完全匹配條件 相當(dāng)于sql中的and
should: 至少滿足一個條件 相當(dāng)于sql中的 or
must_not: 文檔必須不匹配條件 相當(dāng)于sql中的!=
GET /demo_person/_search
{"query": {"bool": {"must": [{"match": {"last_name": "Smith"}}],"filter": [{"range": {"age": {"gte": 30}}}]}}
}
上述用sql表示:
SELECT * FROM demo_person WHERE last_name = 'Smith' AND age >= 30
9:must多條件匹配查詢
這是一個 Elasticsearch 查詢語句,用于在索引為 demo_person 中查詢 last_name 字段包含 “Smith” 且 age 等于 32 的文檔。
GET /demo_person/_search
{"query": {"bool": {"must": [{"match": {"last_name": "Smith"}},{"match": {"age": 32}}]}}
}
上述用sql表示:
SELECT * FROM demo_person WHERE last_name = 'Smith' AND age = 32
10:Should滿足一個條件查詢
這是一個 Elasticsearch 查詢語句,用于在索引為 demo_person 中查詢 last_name 字段包含 “Fir” 或 age 等于 32 的文檔。
GET /demo_person/_search
{"query": {"bool": {"should": [{"match": {"last_name": "Fir"}},{"match": {"age": 32}}]}}
}
上述用sql表示:
SELECT * FROM demo_person WHERE last_name = 'Fir' OR age = 32
11: must_not必須不匹配查詢
這是一個 Elasticsearch 查詢語句,用于在索引為 demo_person 中查詢 last_name 字段不包含 “Fir” 且 age 不等于 32 的文檔
GET /demo_person/_search
{"query": {"bool": {"must_not": [{"match": {"last_name": "Fir"}},{"match": {"age": 32}}]}}
}
上述用sql表示:
SELECT * FROM demo_person WHERE last_name != 'Fir' AND age != 32
12:多個字段查詢內(nèi)容
這是一個 Elasticsearch 查詢語句,用于在索引為 demo_person 中查詢 last_name 和 about 字段包含 “collect” 或 “rock” 的文檔。
GET /demo_person/_search
{"query": {"multi_match": {"query": "collect rock","fields": ["last_name","about"]}}
}
上述用sql表示:
SELECT * FROM demo_person WHERE last_name LIKE '%collect%' OR about LIKE '%collect%' OR last_name LIKE '%rock%' OR about LIKE '%rock%'
13:一個字段查詢多個內(nèi)容
GET /demo_person/_search
{"query": {"terms": {"about": ["rock","hehe" ]}}
}
上述用sql表示:
SELECT * FROM demo_person WHERE about IN ('rock', 'hehe')
14:通配符和正則匹配
GET /demo_person/_search
{"query": {"bool": {"filter": [{"wildcard":{"last_name":"*mi*"}}]}}
}
上述用sql表示:
SELECT * FROM demo_person WHERE last_name LIKE '%mi%'
15:前綴查詢
GET /demo_person/_search
{"query": {"prefix": {"last_name": {"value": "Smi"}}}
}
上述用sql表示:
SELECT * FROM demo_person WHERE last_name LIKE 'Smi%'
16:短語匹配
這是一個 Elasticsearch 查詢語句,用于在索引為 demo_person 中查詢 about 字段包含短語 “rock climbing” 的文檔。
GET /demo_person/_search
{"query" : {"match_phrase" : {"about" : "rock climbing"}}
}
上述用sql表示:
SELECT * FROM demo_person WHERE about LIKE '%rock climbing%'
17:范圍查詢
GET demo_person/_search
{ "query": {"range": {"age": {"gte": 30,"lt": 35}}}
}
上述用sql表示:
SELECT * FROM demo_person WHERE age >= 30 AND age < 35
18:字段存在查詢
GET /demo_person/_search
{"query": {"exists": {"field": "age"}}
}
上述用sql表示:
SELECT * FROM demo_person WHERE age IS NOT NULL