1.term查詢和terms查詢
term 和 terms 是 包含(contains) 操作花吟,而非等值(equals)
不知道分詞器的存在蝌戒,所以不會去分詞
所謂的包含是文檔分詞結(jié)果某個分詞是否相等莫矗,即文檔是否包含這個分詞
因為是在分詞結(jié)果中匹配峦嗤,所以大寫要轉(zhuǎn)換為小寫,大寫字母是匹配不到
GET /star-articles/_search
{ "query":{"term":{ "content":"今天"}}
}
GET /star-articles/_search
{ "query":{"terms":{ "id":[6402,6403]}}
}
2.控制查詢返回的數(shù)量
GET /star-articles/_search
{
"from":0,
"size":2,
"query":{"term":{ "content":"今天"}}
}
3.match查詢
match query知道分詞器的存在,會對filed進(jìn)行分詞操作惨寿,然后再查詢
match_all:查詢所有文檔
multi_match:可以指定多個字段
match_phrase:短語匹配查詢,ElasticSearch引擎首先分析(analyze)查詢字符串羽戒,從分析后的文本中構(gòu)建短語查詢缤沦,這意味著必須匹配短語中的所有分詞,并且保證各個分詞的相對位置不變
GET /star-articles/_search
{
"query":{"match":{ "content":"今天吃火鍋"}}
}
GET /star-articles/_search
{
"query":{"match_all":{ }}
}
GET /star-articles/_search
{
"query":{"match_phrase":{ "content":"今天吃火鍋"}}
}
4.指定返回的字段
GET /star-articles/_search
{
"_source":["id","content"],
"query":{"match":{ "content":"今天吃火鍋"}}
}
5.排序
前綴匹配查詢"match_phrase_prefix", 并使用sort實現(xiàn)排序:desc:降序易稠,asc升序
GET /star-articles/_search
{
"query": {
"match_phrase_prefix": {
"content": "今天"
}
},
"sort":[
{
"publishedAt":{"order": "desc"}
}
]
}
6.范圍查詢
range:實現(xiàn)范圍查詢
GET /star-articles/_search
{
"query": {
"range": {
"publishedAt": {
"from": "2021-01-13",
"to": "2021-01-14",
"include_lower": true,
"include_upper": false
}
}
}
}
7.高亮搜索結(jié)果
GET /star-articles/_search
{
"query":{
"match":{
"content": "今天"
}
},
"highlight": {
"fields": {
"content": {}
}
}
}