在Solr admin中上载CSV文件时出现问题
我有一个具有搜索功能的应用程序,我正在使用Solr进行搜索。我正在尝试将数据上传为CSV文件。但数据没有正确上传到Solr core 这是我正在使用的curl命令在Solr admin中上载CSV文件时出现问题,csv,search,solr,Csv,Search,Solr,我有一个具有搜索功能的应用程序,我正在使用Solr进行搜索。我正在尝试将数据上传为CSV文件。但数据没有正确上传到Solr core 这是我正在使用的curl命令 curl 'http://localhost:8983/solr/test_import/update/csv?commit=true&separator=%09&escape=%5c&encapsulator=%22' --data-binary @/tmp/college_data_201808091649
curl 'http://localhost:8983/solr/test_import/update/csv?commit=true&separator=%09&escape=%5c&encapsulator=%22' --data-binary @/tmp/college_data_20180809164959.csv -H 'Content-type:application/csv'
这给了我一个错误
java.io.IOException:(第0行)封装的令牌结束分隔符之间的字符无效\n\t org.apache.solr.internal.csv.CSVParser.enclosedTokenlexer
如果删除封装器=%22它将上载,但格式不好
这是他的上传方式:
{
"id":"8adb5378-aa58-427d-8ff4-fca4f31c96e6",
"ID_College_Name_State_City_Address":["43387,,,,"],
"_version_":1608318488833687552,
"ID_College_Name_State_City_Address_str":["43387,,,,"]},
{
"id":"e29a0435-95c5-4d3c-bddf-eacef22f6859",
"ID_College_Name_State_City_Address":["43388,apsce,,,"],
"_version_":1608318488835784704,
"ID_College_Name_State_City_Address_str":["43388,apsce,,,"]}
这是我的csv文件结构
"ID","College_Name","State","City","Address"
"43387","","","",""
"43388","apsce","","",""
请帮我解决这个问题。如果您需要有关此问题的任何进一步信息,请告诉我。您的CSV文件应使用CSV解析的默认值进行完美解析。删除您提供的所有参数 错误消息是因为您将
分隔符
参数指定为%09
,这是制表符。您的值不是由制表符分隔的,而是由标准的,
分隔的
separator=%09 # separated by TAB (wrong)
escape=%5c # escaped by \ (default)
encapsulator=%22 # encapsulated by " (default)
由于解析器正在查找由
分隔的值,因此在分隔符之间有多个“
表示解析错误(自之后发生,
未作为分隔符提供)。您的CSV文件应使用CSV解析的默认值进行完美解析。删除您提供的所有参数
错误消息是因为您将分隔符
参数指定为%09
,它是制表符。您的值不是由制表符分隔的,而是由标准的,
分隔的
separator=%09 # separated by TAB (wrong)
escape=%5c # escaped by \ (default)
encapsulator=%22 # encapsulated by " (default)
由于解析器正在查找由
分隔的值,因此在分隔符之间有多个“
表示解析错误(发生于之后,
不作为分隔符提供)。谢谢。。我没有检查,它起作用了。。但是字段名在实际字段名之前和之后都像下划线一样。。和ID一样,我从csv中删除了双引号。现在工作正常。但这不是实际的解决方案-正确的解决方案是按文件的格式解析文件。在这种情况下,我该怎么做?这就是我的答案所描述的。您可以使用默认值,因为它们应该可以正常工作(而不是将TAB设置为分隔符),或者显式地将,
设置为分隔符。谢谢。。我没有检查,它起作用了。。但是字段名在实际字段名之前和之后都像下划线一样。。和ID一样,我从csv中删除了双引号。现在工作正常。但这不是实际的解决方案-正确的解决方案是按文件的格式解析文件。在这种情况下,我该怎么做?这就是我的答案所描述的。您可以使用默认值,因为它们应该可以正常工作(而不是将TAB设置为分隔符),或者显式地将、
设置为分隔符。