請求參數(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í)", "騷年"]
}
}
}
