您好我有以下CSV文件
132 1536130302256087040
133 1536130302256087041
134 1536130302256087042
字段由选项卡分隔。 现在我有soli的Dataimporthandler(DIH),我尝试将CSV导入solr,但我只将第一行导入solr。这是结果,但CSV中的其他行丢失了:
"response": {
"numFound": 1,
"start": 0,
"maxScore": 1,
"docs": [ {
"string": "1536130302256087040",
"id": "132",
"_version_": 1536202153221161000
} ] }
这是我的data-config.xml
<dataConfig>
<dataSource type="FileDataSource" encoding="UTF-8" name="fds"/>
<document>
<entity name="f"
processor="FileListEntityProcessor"
fileName="myfile.csv"
baseDir="/var/www/solr-5.4.0/server/csv/files"
recursive="false"
rootEntity="true"
dataSource="null" >
<entity
onError="continue"
name="jc"
processor="LineEntityProcessor"
url="${f.fileAbsolutePath}"
dataSource="fds"
rootEntity="true"
header="false"
separator="\t"
transformer="RegexTransformer" >
<field column="id" name="id" sourceColName="rawLine" regex="^(.*)\t"/>
<field column="string" name="string" sourceColName="rawLine" regex="\t(.*)$"/>
</entity>
</entity>
</document>
</dataConfig>
这是我的schema.xml
<field name="id" type="text_general" indexed="true" stored="true" multiValued="false" required="true"/>
<field name="string" type="text_general" indexed="true" stored="true" multiValued="false"/>
<field name="_version_" type="long" indexed="true" stored="true"/>
<uniqueKey>id</uniqueKey>
我做错了什么?
答案 0 :(得分:2)
对于两个级别的实体,您都有 rootEntity = true 。因此,您只能获得外部实体的一个文档。尝试将外层rootEntity设置为false。
此外,您只需将标签分隔的文件发送到Solr CSV processor,无需DIH。