文章目录
- [org.apache.solr.common.SolrException: Exception writing document id MATERIAL-99598435990497269125316 to the index; possible analysis error: cannot change DocValues type from NUMERIC to SORTED_NUMERIC for field "opt_time"](#org.apache.solr.common.SolrException: Exception writing document id MATERIAL-99598435990497269125316 to the index; possible analysis error: cannot change DocValues type from NUMERIC to SORTED_NUMERIC for field "opt_time")
- [Exception writing document id MATERIAL-43619171460367415133741 to the index; possible analysis error: cannot change DocValues type from NUMERIC to SORTED_NUMERIC for field "opt_time"](#Exception writing document id MATERIAL-43619171460367415133741 to the index; possible analysis error: cannot change DocValues type from NUMERIC to SORTED_NUMERIC for field "opt_time")
org.apache.solr.common.SolrException: Exception writing document id MATERIAL-99598435990497269125316 to the index; possible analysis error: cannot change DocValues type from NUMERIC to SORTED_NUMERIC for field "opt_time"
查看当前字段定义:
sh
curl http://localhost:8983/solr/your_core/schema/fields/opt_time
请将 your_core
替换为你的Solr核心名称
删除旧字段定义:
sh
curl -X DELETE http://localhost:8983/solr/your_core/schema/fields/opt_time
可以使用 web 页面删除
重新定义字段:
sh
curl -X POST -H 'Content-type:application/json' --data-binary '{
"add-field": {
"name": "opt_time",
"type": "pdate",
"indexed": true,
"stored": true,
"docValues": true,
"multiValued": false
}
}' http://localhost:8983/solr/your_core/schema
Exception writing document id MATERIAL-43619171460367415133741 to the index; possible analysis error: cannot change DocValues type from NUMERIC to SORTED_NUMERIC for field "opt_time"
这个错误信息表明在使用 SolrJ 客户端向 Solr 服务器发送文档时遇到了问题。具体错误是尝试将字段 "opt_time" 的 DocValues 类型从 NUMERIC 更改为 SORTED_NUMERIC,这在 Solr 中是不允许的。
首先,你需要检查 Solr 的 managed-schema 或 schema.xml 文件中字段 "opt_time" 的定义。如果你使用的是 managed-schema,你可以通过 Solr 的管理界面或使用 Schema API 来查看字段定义。
更新字段定义
如果 "opt_time" 字段的 DocValues 类型确实需要是 SORTED_NUMERIC,而当前设置为 NUMERIC,你需要更新字段定义。这可以通过 Schema API 来完成。例如,你可以发送一个 POST 请求来更新字段定义:
sh
curl -X POST -H 'Content-type:application/json' --data-binary '{
"update-field": {
"name": "opt_time",
"type": "pdate",
"indexed": true,
"stored": true,
"docValues": "SORTED_NUMERIC",
"multiValued": false
}
}' http://localhost:8983/solr/your_core/schema
这里使用的是 update-field
如果不行,可以删除掉out_time
,使用 add-field
来添加
sh
curl -X POST -H 'Content-type:application/json' --data-binary '{
"add-field": {
"name": "opt_time",
"type": "pdate",
"indexed": true,
"stored": true,
"docValues": "SORTED_NUMERIC",
"multiValued": false
}
}' http://admin:Oi2a@172.111.111.182:8983/solr/2-testcore/schema