我正在實施使用 Elasticsearch 的多租戶系統。單個索引保存所有租戶檔案。因為它對所有租戶都有相同的欄位。我有一個欄位來識別這樣的租戶。
{
tenantId: "cba1714d-0062-4fc6-a11d-88e062b1fe88"
}
條件是此租戶 id 中的用戶應該能夠僅索引租戶 id == "cba1714d-0062-4fc6-a11d-88e062b1fe88" 的檔案。
是否有任何內置功能可以防止交叉租戶索引檔案?
uj5u.com熱心網友回復:
是的,您可以在 elasticsearch 中使用攝取管道。攝取管道具有丟棄處理器,它將根據特定條件丟棄檔案。
您可以使用以下命令或從 Kibana 創建攝取管道。
PUT _ingest/pipeline/my-pipeline
{
"description": "My optional pipeline description",
"processors": [
{
"drop": {
"if": "ctx.tenantId != 'cba1714d-0062-4fc6-a11d-88e062b1fe88'"
}
}
]
}
創建管道后,您可以在索引請求中提供管道名稱:
POST my-index/_doc?pipeline=my-pipeline
{
"@timestamp": "2099-03-07T11:04:05.000Z",
"tenantId": "cba1714d-0062-4fc6-a11d-88e062b1fe88"
}
如果要根據不同的索引索引檔案,tenantId則可以使用 Set Processor_index并根據條件更改值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/448761.html
標籤:弹性搜索
