ElasticSearch如何新增一列并将其现有内容填充到该新列中
发布时间
阅读量:
阅读量
ElasticSearch不支持对现有Field的数据类型或Analyzer进行修改,在项目中如需额外的检索需求且当前映射中的Analyzer无法满足这些需求时,则可以通过新增一个Field并定义相应的Analyzer来实现。
在项目中对name字段的初始设置为基于标准analyzer架构实现基本查询处理能力,并在子字段层面上引入keyword字段用于排序操作
"name": {
"type": "text",
"analyzer": "standard",
"fields": {
"keyword": {
"type": "keyword"
}
}
为了提升name字段的搜索完整性,在现有数据量基础上优化相关功能
通过调研发现 search-as-you-type 数据类型正好匹配当前项目的功能需求
该数据类型能够有效支持实时搜索补全功能的应用场景
同时由于Index中已经存在大量数据(约几千万条记录)无法进行新索引构建操作
因此有必要修改当前Index的映射结构以新增一个字段
该字段将专门用于实现搜索补全所需的功能模块
1. update index mapping,将新field的mapping信息写入。
全部评论 (0)
还没有任何评论哟~
