彈性搜索中是否有一個選項來存盤值,僅用于檢索而不用于搜索?因此,在建立索引時,我們將索引所有欄位,而在搜索時,我們將僅搜索單個欄位,但還需要其他資料。例如,我們將索引產品,欄位可以是名稱、SKU、供應商名稱等。其中,只有名稱需要被索引和搜索。SKU 和供應商名稱僅用于通過搜索存盤和檢索。
uj5u.com熱心網友回復:
由于_source無論如何都會存盤檔案,因此實作您想要的最佳方法是既不存盤也不索引任何欄位,除了您正在搜索的欄位,如下所示:
PUT my-index
{
"mappings": {
"_source": {
"enabled": true <--- true by default, but adding for completeness
},
"properties": {
"name": {
"type": "text",
"index": true <--- true by default, but adding for completeness
},
"sku": {
"type": "keyword",
"index": false, <--- don't index this field
"store": false <--- false by default, but adding for completeness
},
"supplier": {
"type": "keyword",
"index": false, <--- don't index this field
"store": false <--- false by default, but adding for completeness
},
}
}
}
所以總結一下:
- 您要搜索的欄位必須有
index: true - 您不想搜索的欄位必須有
index: false store默認為 false,因此您無需指定它_source默認啟用,因此您無需指定它enabled應該只在頂級或object欄位上使用,所以它在這里沒有它的位置
通過上面的映射,你可以
- 搜索
name _source從檔案中檢索所有欄位,因為該_source欄位默認存盤并包含原始檔案
uj5u.com熱心網友回復:
使用enabled: false欄位定義中的選項使欄位不被索引。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/448769.html
標籤:弹性搜索
上一篇:非法引數例外錯誤彈性搜索
