我使用solr索引大量文档。我的一个要求是每个文档都需要有一个唯一的ID,我尝试使用Unique Key方式实现。但是,当我尝试使用" post"命令正常索引文档,我得到很多
<response>
<lst name="responseHeader"><int name="status">400</int><int name="QTime">15</int></lst><lst name="error"><lst name="metadata"><str name="error-class">org.apache.solr.common.SolrException</str><str name="root-error-class">org.apache.solr.common.SolrException</str></lst><str name="msg">Invalid UUID String: '/Volumes/filePlace/file1.html'</str><int name="code">400</int></lst>
</response>
在输出中,并且没有文档被索引。我该如何解决这个问题?
我使用的post命令是常规语法:
post -c NewCore .
在哪里。是包含所有文件的当前文件夹。
答案 0 :(得分:1)
我发现我的错误是我使用solr中包含的post
工具索引富文档。但是,在使用post
索引富文档(如html)时,HTTP POST请求需要为某些内容指定literal.id
,否则它不会运行。 post
工具会自动将literal.id设置为文件位置,并且由于字段id
设置为UUID类型,因此会导致错误。我现在已将managedschema文件中的id
切换为string类型,并决定使用单独的post命令,例如
post -c NewCore -params literal.id=55 /Volumes/mainVolume/thingy.html
并在索引之前为每个富文档分配一个id。