Elasticsearch 无法索引整数数组
Elasticsearch cannot index array of integers
给定映射:
{
"mappings": {
"properties": {
"user_ids": {"type": "integer"}
}
}
}
观察:
- 索引
{"user_ids": 1}
,数据将正确显示
- 索引
{"user_ids": "x"}
,并抛出错误failed to parse field [user_ids] of type [integer] in document
,表明映射工作正常
- 但是,索引
{"user_ids": [1]}
只是清除字段,不会引发错误。
问题:
- 为什么会发生这种情况,如何索引整数数组?
额外:
- 我删除了所有
settings
配置,没有任何改变
- 我试过
keyword
类型,没有任何改变
- 如果相关,我使用最新的 opensearch-py
不清楚您所说的清除字段是什么意思,整数数组的索引也可以正常工作,如下例所示,希望您遵循相同的请求。
put <index-name>/_doc/1
{
"user_ids": [
1,2,3
]
}
并得到APIreturns,数组中的所有整数。
GET <index-name>/_doc/1
"_source": {
"user_ids": [
1,
2,
3
]
}
}
原来是我自己的错误:我使用 elasticsearch-head 快速检查值,但它们不支持显示数组值:/ 一旦我再次检查查询,它们返回正确。
给定映射:
{
"mappings": {
"properties": {
"user_ids": {"type": "integer"}
}
}
}
观察:
- 索引
{"user_ids": 1}
,数据将正确显示 - 索引
{"user_ids": "x"}
,并抛出错误failed to parse field [user_ids] of type [integer] in document
,表明映射工作正常 - 但是,索引
{"user_ids": [1]}
只是清除字段,不会引发错误。
问题:
- 为什么会发生这种情况,如何索引整数数组?
额外:
- 我删除了所有
settings
配置,没有任何改变 - 我试过
keyword
类型,没有任何改变 - 如果相关,我使用最新的 opensearch-py
不清楚您所说的清除字段是什么意思,整数数组的索引也可以正常工作,如下例所示,希望您遵循相同的请求。
put <index-name>/_doc/1
{
"user_ids": [
1,2,3
]
}
并得到APIreturns,数组中的所有整数。
GET <index-name>/_doc/1
"_source": {
"user_ids": [
1,
2,
3
]
}
}
原来是我自己的错误:我使用 elasticsearch-head 快速检查值,但它们不支持显示数组值:/ 一旦我再次检查查询,它们返回正确。