DSL搜索

請求參數(shù)的查詢(QueryString)

GET     /shop/_doc/_search?q=desc:慕課網(wǎng)
GET     /shop/_doc/_search?q=nickname:慕&q=age:25

DSL基本語法

# 查詢
POST     /shop/_doc/_search
{
    "query": {
        "match": {
            "desc": "慕課網(wǎng)"
        }
    }
}
# 判斷某個(gè)字段是否存在
{
    "query": {
        "exists": {
            "field": "desc"
        }
    }
}

語法格式為一個(gè)json object,內(nèi)容都是key-value鍵值對,json可以嵌套。
key可以是一些es的關(guān)鍵字,也可以是某個(gè)field字段,后面會遇到

1.分頁

OST     /shop/_doc/_search
{
    "query": {
        "match_all": {}
    },
    "from": 0,
    "size": 10
}

{
    "query": {
        "match_all": {}
    },
    "_source": [
        "id",
        "nickname",
        "age"
    ],
    "from": 5, 從第幾條數(shù)據(jù)開始
    "size": 5  數(shù)據(jù)的大小
}

2.term精確搜索與match分詞搜索

POST     /shop/_doc/_search
{
    "query": {
        "term": {
            "desc": "慕課網(wǎng)"
        }
    }
}
對比
{
    "query": {
        "match": {
            "desc": "慕課網(wǎng)"
        }
    }
}
  • 注:match會對慕課網(wǎng)先進(jìn)行分詞(其實(shí)就是全文檢索),在查詢,而term則不會,直接把慕課網(wǎng)作為一個(gè)整的詞匯去搜索。
  • head 可視化操作對比:


    image.png

terms 多個(gè)詞語匹配檢索

相當(dāng)于是tag標(biāo)簽查詢,比如慕課網(wǎng)的一些課程會打上前端/后端/大數(shù)據(jù)/就業(yè)課這樣的標(biāo)簽,可以完全匹配做類似標(biāo)簽的查詢

POST     /shop/_doc/_search
{
    "query": {
        "terms": {
            "desc": ["慕課網(wǎng)", "學(xué)習(xí)", "騷年"]
        }
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容