elasticsearch - 创建索引时,定义索引映射时'_doc'的意义何在?
问题描述
据我了解,在创建索引时,您可以通过定义映射来定义文档在该索引中将具有的字段
PUT person
{
"mappings": {
"properties": {
"firstName":{"type":"text"},
"secondName":{"type":"text"},
"age":{"type":"integer"}
}
}
}
但我也发现查询有时是这样写的,_doc
里面有一个映射
PUT person
{
"mappings": {
"_doc":{
"properties": {
"firstName":{"type":"text"},
"secondName":{"type":"text"},
"age":{"type":"integer"}
}
}
}
}
推杆有什么作用_doc
?
解决方案
_doc
第二个映射与 7.0 之前的映射定义松散相关。
而不是_doc
它会包含type
您的文档。话虽如此,第二个映射将在 7.0 w/oa 问题之前工作,如果您指定 ,则 >=7.0 include_type_name
,即PUT person?include_type_name=true
.
更多信息在这里:https ://www.elastic.co/blog/moving-from-types-to-typeless-apis-in-elasticsearch-7-0
所有这一切的想法是一个index
应该只包含一个type
文档,从而使第type
一个变得多余,后来被弃用。
推荐阅读
- .net - 从 ASP.NET 核心 Web 应用程序打印 PDF 文档
- applescript - 如何 cron 访问提醒的 AppleScript(带参数)
- reactjs - 退出转换未触发 React Reveal
- c# - 您应该使用以下哪个 SQL 语句?
- api - API Github - 搜索存储库 - 排序更新 - 格式化时间戳
- mysql - AWS Lightsail - MYSQL DB 存储已满 (240GB)
- angular - 在 Angular 应用程序 (ng build) 中禁用 CSS 中的 URL 检查。就像在库中一样(ng build some-lib)
- c# - IQueryable (PLINQ) 查看和分组 Linq 方法以在不同任务中运行
- syntax - Tcl 传递变量的值
- function - 如何在我正在使用的插件中制作一个禁用这些行的过滤器