Solr上传CSV文件

时间:2018-08-09 11:33:57

标签: csv search solr

我有一个具有搜索工具的应用程序,并且我正在使用Solr进行搜索。我正在尝试将数据上传为CSV文件。但是数据没有正确上传到Solr核心。

这是我正在使用的curl命令

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: (line 0) invalid char between encapsulated token end delimiter\n\tat org.apache.solr.internal.csv.CSVParser.encapsulatedTokenLexer

如果删除 encapsulator =%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","","",""

请帮助我解决此问题。如果您需要有关此问题的更多信息,请告诉我。

1 个答案:

答案 0 :(得分:1)

您的CSV文件应使用CSV解析的默认值完美解析。删除您要提供的所有参数。

错误消息是因为您将separator参数指定为%09,这是TAB字符。您的值不是由TAB字符分隔,而是由标准,分隔。

separator=%09 # separated by TAB (wrong)
escape=%5c # escaped by \ (default)
encapsulator=%22 # encapsulated by " (default)

由于解析器正在寻找用<TAB>分隔的值,因此分隔符之间有多个"表示解析错误(由于没有将,作为分隔符而发生)。 / p>