您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
elasticSearch超时与单映射
发布时间:2021-08-31 14:09:16编辑:雪饮阅读()
超时
默认情况下,索引操作将在主分片上最多等待1分钟,超过后就会失败并响应错误。 可以通过将值传递给timeout参数来显式更改这个超时值。
像下面这个请求:
请求体:
{
"Text":"This is chapter 2 waiting for primary shard for 3 minutes"
}
响应体:
{
"_index": "tutorials",
"_type": "chapter",
"_id": "2",
"_version": 2,
"result": "updated",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 1,
"_primary_term": 1
}
像是这样,索引就可以让主分片上最多等待3分钟了。
但是这个呢,不是很好验证的,这里就不多赘述了。
单映射
在elasticSearch像是我这个版本elasticsearch-7.14.0-windows-x86_64之前的版本我是不清楚,但是在elasticsearch-7.14.0-windows-x86_64版本上面
一个索引只能允许一个映射的存在,你比如上面这个请求,我们只把请求url中的映射部分修改了,那么修改后的请求url如:
请求正文:
{
"Text":"This is chapter 2 waiting for primary shard for 3 minutes"
}
响应体:
{
"error": {
"root_cause": [
{
"type": "illegal_argument_exception",
"reason": "Rejecting mapping update to [tutorials] as the final mapping would have more than 1 type: [chapter, chapter2]"
}
],
"type": "illegal_argument_exception",
"reason": "Rejecting mapping update to [tutorials] as the final mapping would have more than 1 type: [chapter, chapter2]"
},
"status": 400
}
人家就直接给你说了,这个索引若这样操作,将会导致两个映射的。就报错了。
此时若将刚才创建的索引整个给删除了,那么上面这个修改了url的请求,就可以请求成功了。
补充:就elasticsearch-7.14.0-windows-x86_64版本来看,貌似也仅仅只是普通索引的映射可以自定义,但若是父子关系索引的文档,例如父文档索引时候映射名必须是_doc而不能是其它的,据说是以前版本是可以的,但具体多久以前,这里暂时没有探索了。对于普通索引下进行索引文档,则映射名就可以自定义了。这是目前我发现的一个规律。
并且你会发现你删除了_doc映射所用的索引,那么这个_doc的映射还是仍然存在的。
、
就是像你把图中这几个索引删除了,下面这个类型_doc仍然是存在的,不可删除的。
像是之前有涉及过has_parent时候,其实要切换索引默认的映射这里有一个笨办法,删除调用原来的父子关系索引,然后重新单独简历父子关系索引、然后再为这个新建立的父子关系索引建立一个不是_doc的自定义映射,最后也不要是doc哦,毕竟这两个好像在elasticSearch中是有版本之间的区别的,勉强也算是其的两个关键字了。
那么接下来就继续正常索引父文档和子文档了,那么接下来你若将这个新建立的父子关系索引删除后,其附带的你刚才自定义的映射也会被删除,所以总结下来就是说自带的_doc(可能是自带,我不晓得是我第一次建立父子关系索引时候产生的还是elasticSearch默认的)或者doc(doc有点不确定,因为这个只听说和_doc之间有版之间不同的变动,所以这个目前只是直觉有问题)所应用的一些索引被删除,这两个映射不会被删除,而你自定义的映射就会随着索引的删除而删除。,当然这里还没有正式学习到索引,我想同一个映射有可能会被多个索引应用,如果是这样的,那么我想应该在这种情况下,应该就是所有应用该映射的索引都被删除之后,该映射才会被删除,当然这里也假定排除doc和_doc.
补充:
上面对于doc和_doc的概念这里很混乱,那么刚才我又再次在elasticsearch-7.14.0-windows-x86_64中进行测试总结如下:
首先doc在elasticsearch-7.14.0-windows-x86_64版本中也可以像是普通的自定义映射,随着所使用的索引被删除而映射跟着被删除。
那么这里还会发现,就是在你创建了父子关系索引的时候,然后再为这个父子关系索引补充映射后你会发现又出现了一个同名的索引,只是后面你再次进行索引父子文档后,这个同名索引里面不增加数据条目而已。
关键字词:elasticSearch,超时,映射,单映射