无法从 CSV 索引十进制值
Cannot index decimal values from CSV
我正在使用 SOLR 6.6.2,我正在尝试使用车辆数据的 CSV 文件更新核心。
每列数据由各种数据类型组成,例如整数、字符串、日期和小数值。
问题出在十进制值上。我必须将它们更新为零小数位,否则会出现以下错误:
PS C:\solr-6.6.2\example\exampledocs> java -Dtype=text/csv
-Dc="vehicles" -jar post.jar vehicles.csv
using content-type text/csv... POSTing file vehicles.csv to [base]
SimplePostTool: WARNING: Solr returned an error #400 (Bad Request) for
url: http://localhost:8983/solr/vehicles/update SimplePostTool:
WARNING: Response:
400124org.apache.solr.common.SolrExceptionjava.lang.NumberFormatExceptionERROR: [doc=d90354e7-3d73-4718-aeb5-80b0ce8fccf9] Error
adding field 'Price'='7950.01' msg=For input string:
"7950.01"400
SimplePostTool: WARNING: IOException while reading response:
java.io.IOException: Server returned HTTP response code: 400 for URL:
http://localhost:8983/solr/vehicles/update 1 files indexed. COMMITting
Solr index changes to http://localhost:8983/solr/vehicles/update...
Time spent: 0:00:01.363> SimplePostTool version 5.0.0 Posting files to [base] url
http://localhost:8983/solr/vehicles/update
我从使用 SOLR 版本 4 的 SOLR pluralsight 视频中学习没有帮助,该版本使用 schema.xml 来定义字段,但看起来这在版本 6 中已被弃用,从什么我读到应该不需要修改架构。
仍然有一个架构 - 您应该明确地创建/编辑它以匹配您的值。
当您 运行 处于无模式模式时,当遇到字段的第一个值时会进行猜测。对于您的数据集,这种猜测似乎是错误的 - 即,由于某种原因,第一个值不被视为十进制数。您可以在管理界面的模式浏览器下看到 Solr 为您的列猜测的类型。
最好的解决方案是创建一个明确的架构 - 这样您就可以确定您的列与特定类型相匹配。
您可以编辑架构 directly in the Admin interface, use the Schema API, or modify the schema.xml file as in previous versions。
我正在使用 SOLR 6.6.2,我正在尝试使用车辆数据的 CSV 文件更新核心。
每列数据由各种数据类型组成,例如整数、字符串、日期和小数值。
问题出在十进制值上。我必须将它们更新为零小数位,否则会出现以下错误:
PS C:\solr-6.6.2\example\exampledocs> java -Dtype=text/csv -Dc="vehicles" -jar post.jar vehicles.csv
using content-type text/csv... POSTing file vehicles.csv to [base] SimplePostTool: WARNING: Solr returned an error #400 (Bad Request) for url: http://localhost:8983/solr/vehicles/update SimplePostTool: WARNING: Response: 400124org.apache.solr.common.SolrExceptionjava.lang.NumberFormatExceptionERROR: [doc=d90354e7-3d73-4718-aeb5-80b0ce8fccf9] Error adding field 'Price'='7950.01' msg=For input string: "7950.01"400 SimplePostTool: WARNING: IOException while reading response: java.io.IOException: Server returned HTTP response code: 400 for URL: http://localhost:8983/solr/vehicles/update 1 files indexed. COMMITting Solr index changes to http://localhost:8983/solr/vehicles/update... Time spent: 0:00:01.363> SimplePostTool version 5.0.0 Posting files to [base] url http://localhost:8983/solr/vehicles/update
我从使用 SOLR 版本 4 的 SOLR pluralsight 视频中学习没有帮助,该版本使用 schema.xml 来定义字段,但看起来这在版本 6 中已被弃用,从什么我读到应该不需要修改架构。
仍然有一个架构 - 您应该明确地创建/编辑它以匹配您的值。
当您 运行 处于无模式模式时,当遇到字段的第一个值时会进行猜测。对于您的数据集,这种猜测似乎是错误的 - 即,由于某种原因,第一个值不被视为十进制数。您可以在管理界面的模式浏览器下看到 Solr 为您的列猜测的类型。
最好的解决方案是创建一个明确的架构 - 这样您就可以确定您的列与特定类型相匹配。
您可以编辑架构 directly in the Admin interface, use the Schema API, or modify the schema.xml file as in previous versions。