elasticsearch 查詢資料
阿新 • • 發佈:2021-07-08
一、隨機獲取資料
- 在
query
的同級下新增下面程式碼
"sort": {
"_script": {
"script": "Math.random()",
"type": "number"
}
}
二、模糊查詢
1、prefix 字首查詢
- prefix 字首查詢,查詢 id 以 “aa-” 開頭的資料,
_source
段值為查詢後需要返回的欄位
GET 索引名/_search { "query": { "bool": { "filter": [ { "prefix": { "id": "aa-" } } ] } }, "_source": ["title","id"] }
2、wildcard 萬用字元查詢
- wildcard 萬用字元查詢, 查詢 id 以 “aa-” 開頭的資料
GET 索引名/_search
{
"query": {
"bool": {
"filter": [
{
"wildcard": {
"id": "aa-*"
}
}
]
}
},
"_source": ["title","id"]
}
萬用字元 | 含義 | 例項 |
---|---|---|
* | 匹配 0 或多個字元 | a*b,a與b之間可以有任意長度的任意字元, 也可以一個也沒有, 如 aabcb, axyzb, a012b, ab |
? | 匹配任意單個字元 | a?b,a與b之間有且只有一個字元, 可以是任意字元, 如 aab, abb, acb, a0b |
[list] | 匹配 list 中的任意單個字元 | a[xyz]b,a與b之間必須也只能有一個字元, 但只能是 x 或 y 或 z, 如 axb, ayb, azb。 |
[!list] | 匹配除 list 中的任意單一字元 | a[!0-9]b,a與b之間必須也只能有一個字元, 但不能是阿拉伯數字, 如 axb, aab, a-b。 |
[c1-c2] | 匹配 c1-c2 中的任意單一字元 | a[0-9]b,匹配0與9之間其中一個字元,如 a0b, a1b… a9b |
{s1,s2,…} | 匹配 s1 或 s2 (或更多)中的一個字串 | a{abc,xyz,123}b,a與b之間只能是abc或xyz或123這三個字串之一 |
3、regexp 正則查詢
GET 索引名/_search
{
"query": {
"bool": {
"filter": [
{
"regexp": {
"id": "aa-.*"
}
}
]
}
},
"_source": ["title","id"]
}
三、多欄位查詢 best_fields、most_fields、cross_fields
參考連結:https://elastic.blog.csdn.net/article/details/111412721