elasticsearch - 使用 NEST 中的映射进行批量更新
问题描述
我正在通过以下方式创建带有映射的索引:
_elasticClient.Indices.Create(name, c => c.Map(/* omitted for brevity */));
_elasticClient.BulkAll(data, b => b
.Index(name)
.BackOffTime("30s")
.BackOffRetries(2)
.RefreshOnCompleted()
.MaxDegreeOfParallelism(Environment.ProcessorCount)
.Size(50)).Wait(TimeSpan.FromMinutes(15), _ => { });
_elasticClient.Indices.PutAlias(name, Alias);
我只是想了解批量更新的工作原理并确保我正确执行此操作。即使我删除_elasticClient.Indices.Create
,似乎仍然会创建一个索引。index_v1/_bulk
如果索引不存在,是否创建索引,但如果我先用第一行创建它,则用数据更新它?
解决方案
默认情况下,如果数据被索引到一个尚不存在的索引中,Elasticsearch 将创建索引并根据它看到的第一个文档推断文档的映射。这可能很有用,但通常对于搜索用例,您希望显式控制文档的映射以应用特定的分析器等,因此使用您想要的映射创建索引是首选方法。
推荐阅读
- git - 在 Azure Devops 自托管代理服务器上的管道脚本中使用时,应如何配置 git 用户名和电子邮件?
- html - 按顺序在右侧有一个导航栏
- javascript - BSMultiSelect 通过 Javascript/Jquery 更改所选项目
- python - 为什么不能迭代 Model.objects.all()?
- asp.net - System.Security.Cryptography.CryptographicException:加密操作期间发生错误
- node.js - 获取 MulterError:React Native 多张图片上传中的意外字段
- r - 如何添加相对于 geom_point 大小的位置的 geom_text 或 geom_label?
- python - Python批处理子进程,进程不均匀
- javascript - 为什么这个元素为空,为什么它给了我一个输入元素?
- reactjs - 如何使我的 axios 函数在其他 React/Typescript 组件中可重用?