您好,登錄后才能下訂單哦!
本篇文章為大家展示了如何實現(xiàn)Elasticsearch Percolate 反向檢索,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
percolator中文含義:滲透器。
percolator query等價于滲透查詢或者反向查詢。
我們相信大多數(shù)Elasticsearch開發(fā)人員都會按照慣例進行思考,我們?yōu)閿?shù)據(jù)建模并將其存儲在索引中。然后,他們通過搜索API定義查詢以檢索這些文檔。
percolator query 的原理則完全相反,如下圖所示:
您將查詢存儲到索引中,然后通過Percolate API定義文檔以檢索這些查詢。
也就是:
舉例:提供一個存儲用戶興趣的平臺,以便在每次有新內(nèi)容進入時將正確的內(nèi)容(通知警報)發(fā)送給正確的用戶。
舉例:用戶訂閱了特定主題,以便一旦該主題的新文章出現(xiàn),就會向感興趣的用戶發(fā)送通知。
應(yīng)用場景如下:
閾值告警業(yè)務(wù)場景——當指定字段count值大于閾值時候,報警提示。
DELETE my-index
PUT /my-index
{
"mappings": {
"properties": {
"threshold": {
"type": "long"
},
"count": {
"type": "long"
},
"query": {
"type": "percolator"
}
}
}
}
注意:percolator是等價于:keyword、long、Integer的數(shù)據(jù)類型。
"query": {
"type": "percolator"
}
這種定義結(jié)構(gòu)是不可以修改的。
PUT /my-index/_doc/1
{
"threshold": 100,
"query": {
"bool": {
"must": {
"range": {
"count":{
"gt":100
}
}
}
}
}
}
GET /my-index/_search
{
"query": {
"percolate": {
"field": "query",
"documents": [
{
"count": 1
},
{
"count": 50
},
{
"count": 120
},
{
"count": 150
}
]
}
}
}
返回結(jié)果(部分):
{
"took" : 4,
.......省略.....
},
"fields" : {
"_percolator_document_slot" : [
2,
3
]
}
}
]
}
}
其中:"_percolator_document_slot” 指代的是:文檔position,從0開始計數(shù)。
第一:通過使用DSL將用戶的待設(shè)置的預(yù)警條件構(gòu)造成Elasticsearch query語句,就好像它是一個文檔一樣,導(dǎo)入Elasticsearch索引。
第二:每次發(fā)布新文章時,都無需對其編入索引(索引化),就可以對其進行過濾,以了解文檔值是否達到閾值。
第三:根據(jù)返回結(jié)果_percolator_document_slot,決定是否預(yù)警及精確值預(yù)警。
上述內(nèi)容就是如何實現(xiàn)Elasticsearch Percolate 反向檢索,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。