1. 子條件查詢
特定字段查詢所指特定值
1.1 Query Context
在查詢過程中,除了判斷文檔是否滿足查詢條件以外巩踏,ES還會(huì)計(jì)算一個(gè)_score來標(biāo)識(shí)匹配程度署穗,旨在判斷目標(biāo)文檔的匹配程度辟灰。
常用查詢有:
- 全文本查詢:
針對(duì)文本類型數(shù)據(jù) - 字段級(jí)別查詢:
針對(duì)結(jié)構(gòu)化數(shù)據(jù)剂桥,如數(shù)字和日期等。
1.1.1 全文本查詢:
- 模糊匹配
模糊匹配相當(dāng)于分詞后查詢坯墨,只要字段包含match中的一部分就會(huì)被查出寂汇。
關(guān)鍵字:match
{
"query": {
"match" : {
"country": "China"
}
}
}
- 習(xí)語匹配
習(xí)語匹配匹配全文相同。
關(guān)鍵字:match_phrase
{
"query": {
"match_phrase" : {
"country": "China"
}
}
}
- 多字段匹配
關(guān)鍵字:multi_match
field中的每一個(gè)都要包含query內(nèi)容捣染。
{
"query": {
"multi_match" : {
"query": "China",
"fields": ["country", "name"]
}
}
}
- 語法查詢
關(guān)鍵字:query_string
{
"query": {
"query_string" : {
"query": "(China AND Edwin) OR 18"
}
}
}
可以指定字段:
{
"query": {
"query_string" : {
"query": "Chine OR Edwin",
"fields": ["country","name"]
}
}
}
1.1.2 字段級(jí)別查詢
結(jié)構(gòu)化數(shù)據(jù)的查詢
- 字段查詢
關(guān)鍵字:term
{
"query": {
"term" : {
"age": 18
}
}
}
- 范圍查詢
關(guān)鍵字:range
大于等于18骄瓣,小于30
{
"query": {
"range" : {
"age": {
"gte":18,
"lt":30
}
}
}
}
1.2 Filter Context
在查詢過程中只判斷該文檔是否滿足條件,只有0耍攘,1榕栏。相較于query查詢,ES為其提供了緩存蕾各,所以更快一些扒磁。
關(guān)鍵字為bool
形如:
{
"query": {
"bool" : {
"filter": {
"term": {
"age" : 18
}
}
}
}
}
2. 復(fù)合條件查詢
以一定的邏輯組合子條件查詢
常見查詢:
- 固定分?jǐn)?shù)查詢
- 布爾查詢
...
2.1 固定分?jǐn)?shù)查詢
關(guān)鍵字:constant_score,可以通過boost固定分?jǐn)?shù)式曲。
不支持match
{
"query": {
"constant_score":{
"filter": {
"match": {
"name": "Edwin"
}
},
"boost": 3
}
}
}
2.2 布爾查詢
關(guān)鍵字:bool妨托。
條件有should、must吝羞、must_not等兰伤,可以組合filter。
{
"query": {
"bool":{
"should": [
{
"match": {
"name": "Edwin"
}
},
{
"match": {
"country": "China"
}
}
],
"filter":[
{
"range": {
"age": {
"gt": 18
}
}
}
]
}
}
}
3. 常用系統(tǒng)指令
刪除索引
eg:test
curl -XDELETE http://localhost:9200/test
該指令可以直接刪除一個(gè)索引
cluster是集群級(jí)指令钧排,可以用于查看集群
查看未分配分片:
GET /_cluster/allocation/explain
當(dāng)集群存在未分配的分片時(shí)敦腔,該指令可以給出未分配分片的原因:
cat指令將一些json信息用表格的方式輸出出來,可以用于獲取集群的相關(guān)記錄卖氨。
官網(wǎng)doc:
https://www.elastic.co/guide/en/elasticsearch/reference/current/cat.html
常用:
查詢節(jié)點(diǎn)的列表:
GET /_cat/nodes?v
查看集群index
GET /_cat/indices?v
查看集群健康狀態(tài):
GET /_cat/health?v