solr(windows下)如何对目录下的中文内容的docx/doc和PDF的全篇内容直接进行全文索引?如何配置?
我的目的是对某个文件夹下随时生成的中文内容的docx或doc和PDF(每两个文件有一个子目录),实时生成全文索引,供以后查询。我不想抽取纯文本,想直接对整篇word文档建索引,是动态域吗?那怎样配置呢?包括各个XML?
我在windows2008下使用solr6.0版本,使用的solr本身的web架构,而不是tomcat,目前core1目录下没有schema.xml文件。在solr create -c core1时,自带生成了core1结构,目录为server/solr/core1。core1下有conf和data两个目录,但是conf下没有自动生成schema.xml文件,但是有solrconfig.xml、managed-schema文件。使用admin控制台的schema,添加了field,但依然没有生成schema.xml文件。
使用post命令对dataword目录下的两个docx文档进行索引,发现能找到文件,但出现400号错误,错误内容附后。如果solr6.0有问题,可以使用其他版本,请告诉具体操作步骤,越详细越好,谢谢。
post错误如下:
执行命令:java -Dc=core1 -jar bin/post.jar dataword/
执行结果:
SimplePostTool version 5.0.0
Posting files to [base] url http://localhost:8393/solr/core1/update-type application/xml.... (疑问:为什么是xml类型?对example下面的xml进行post索引,都能成功)
Indexing directory serversolrcore1data (2 files,depth=0)
POSTing file 820-文档一.docx to [base]
SimplePostTool:WARNING: solr returned an error #400 (Bad Request) for url: http://localhost:8393/solr/core1/update
SimplePostTool:WARNING: Response :<?xml version="1.0" encoding="UTF-8"?>
<reponse>
<lst name="resopnseHeader"><int name="status">400</int>
<int name="QTime">2</int>
</lst>
<lst name ="error">
<lst name ="metadata"><str name="error-class">org.apache.solr.common.SolrException></str>
<str name="root -error-class">java.io.CharConversionException</str></lst>
<str name="msg"> Invalid UTF-8 start byte 0x9b ( at char #16,byte $-1(/str><int name="code">400</int></lst>
</reponse>
SimplePostTool: WARNING: IOException while reading response: java.io.IOException: Server returned HTTP response code: 400 for URL: http://localhost:8983/solr/core1/update
POSTing file 820-文档一.docx to [base]
下面一个文档错误内容同上
2 files indexed.
COMMITting Solr index changes to http://localhost:8983/solr/core、update..
我在windows2008下使用solr6.0版本,使用的solr本身的web架构,而不是tomcat,目前core1目录下没有schema.xml文件。在solr create -c core1时,自带生成了core1结构,目录为server/solr/core1。core1下有conf和data两个目录,但是conf下没有自动生成schema.xml文件,但是有solrconfig.xml、managed-schema文件。使用admin控制台的schema,添加了field,但依然没有生成schema.xml文件。
使用post命令对dataword目录下的两个docx文档进行索引,发现能找到文件,但出现400号错误,错误内容附后。如果solr6.0有问题,可以使用其他版本,请告诉具体操作步骤,越详细越好,谢谢。
post错误如下:
执行命令:java -Dc=core1 -jar bin/post.jar dataword/
执行结果:
SimplePostTool version 5.0.0
Posting files to [base] url http://localhost:8393/solr/core1/update-type application/xml.... (疑问:为什么是xml类型?对example下面的xml进行post索引,都能成功)
Indexing directory serversolrcore1data (2 files,depth=0)
POSTing file 820-文档一.docx to [base]
SimplePostTool:WARNING: solr returned an error #400 (Bad Request) for url: http://localhost:8393/solr/core1/update
SimplePostTool:WARNING: Response :<?xml version="1.0" encoding="UTF-8"?>
<reponse>
<lst name="resopnseHeader"><int name="status">400</int>
<int name="QTime">2</int>
</lst>
<lst name ="error">
<lst name ="metadata"><str name="error-class">org.apache.solr.common.SolrException></str>
<str name="root -error-class">java.io.CharConversionException</str></lst>
<str name="msg"> Invalid UTF-8 start byte 0x9b ( at char #16,byte $-1(/str><int name="code">400</int></lst>
</reponse>
SimplePostTool: WARNING: IOException while reading response: java.io.IOException: Server returned HTTP response code: 400 for URL: http://localhost:8983/solr/core1/update
POSTing file 820-文档一.docx to [base]
下面一个文档错误内容同上
2 files indexed.
COMMITting Solr index changes to http://localhost:8983/solr/core、update..
Time spent: 0:00:00.114
对docs下的html也报错
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
就是solr官方文档上提出的,Post Tool直接对docx和pdf进行索引,参见https://cwiki.apache.org/confluence/display/solr/Post+Tool#PostTool-Windows
我不知道如何对schema.xml或其他配置文件进行配置,或是其他什么工作,目的是对整篇文档,感觉word文档没有字段啊,打开就是word的内容,怎样定义field呢?
Indexing rich documents (PDF, Word, HTML, etc)
Index a PDF file into gettingstarted.
bin/post -c gettingstarted a.pdf
我不想抽取纯文本,想直接对整篇word文档建索引,没听懂你的意思,到头来还不是要先把文件里的文本抽出来。
solr-5.5.0examplefiles
这个目录下的核,就可以索引文件