Elasticseach-强制字段仅索引,避免存储
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Elasticseach-强制字段仅索引,避免存储相关的知识,希望对你有一定的参考价值。
我如何强制仅对字段建立索引而不存储数据。该选项在Solr中可用,不确定在Elasticseach中是否可行。
答案
来自document
默认情况下,对字段值进行索引以使其可搜索,但它们却不存储。这意味着可以查询该字段,但是无法检索原始字段值。通常这无关紧要。栏位值已经是_source字段,默认情况下存储。如果您只想检索单个字段或几个字段的值,而不是整个_source,那么可以通过源过滤实现
[如果您也不希望字段也存储在_source中。您可以在映射中从源中排除该字段
映射:
{
"mappings": {
"properties": {
"title":{
"type":"text"
},
"description":{
"type":
}
},
"_source": {
"excludes": [
"description"
]
}
}
}
查询:
GET logs/_search
{
"query": {
"match": {
"description": "b" --> field description is searchable(indexed)
}
}
}
结果:
"hits" : [
{
"_index" : "logs",
"_type" : "_doc",
"_id" : "-aC9V3EBkD38P4LIYrdY",
"_score" : 0.2876821,
"_source" : {
"title" : "a" --> field "description" is not returned
}
}
]
注意:
从源中删除字段将导致以下问题
更新,update_by_query和重新索引API。
动态突出显示。
从一个Elasticsearch索引重新索引到另一个索引的能力,以更改映射或分析,或将索引升级到新的主要版本。
通过查看索引时使用的原始文档调试查询或聚合的功能。
将来有可能自动修复索引损坏。
以上是关于Elasticseach-强制字段仅索引,避免存储的主要内容,如果未能解决你的问题,请参考以下文章