Solr DIH 获取了很多并且只有一个已处理
Solr DIH Fetched many and only ONE Processed
我必须构建一个应用程序,我必须在其中搜索属于 PDF、DOC、DOCX 等文件。我想使用 Solr 来索引包含我所有文件的整个目录,然后在文档中搜索单词。
我在网上看到更快的方法是使用 DIH。我是这样设置这家旅馆的:
solrConfig.xml
<requestHandler name="/update/extract"
startup="lazy"
class="solr.extraction.ExtractingRequestHandler" >
<lst name="defaults">
<str name="lowernames">true</str>
<str name="uprefix">ignored_</str>
<!-- capture link hrefs but ignore div attributes -->
<str name="captureAttr">true</str>
<str name="fmap.a">links</str>
<str name="fmap.div">ignored_</str>
</lst>
</requestHandler>
solr-数据-config.xml
<dataConfig>
<dataSource type="BinFileDataSource" name="bin"/>
<document>
<entity name="sd"
processor="FileListEntityProcessor"
baseDir="C:\Solr\solr-5.0.0\docs\myFolder\"
fileName=".*\.(doc)|(pdf)|(docx)"
recursive="true"
rootEntity="false"
transformer="DateFormatTransformer">
<entity name="tika-test" processor="TikaEntityProcessor" url="${sd.fileAbsolutePath}"
format="text">
<field column="text" name="text"/>
</entity>
<field column="fileSize" name="size" />
<field column="file" name="filename" />
</entity>
</document>
</dataConfig>
当我从 DataImport(Web 管理页面)启动 "Execute" 时,我得到:
Indexing completed. Added/Updated: 1 documents. Deleted 0 documents. (Duration: 03s)
Requests: 0 (0/s), Fetched: 329 (110/s), Skipped: 0, Processed: 1
我在这个 folter 中有很多 doc、pdf 和 docx(显示... 329),但只有第一个已被处理,如果我执行查询,我只得到文件名...任何内容。
"response": {
"numFound": 1,
"start": 0,
"docs": [
{
"fileName": "first_doc.doc",
"id": "4a06f6de-870d-4db9-875d-cd8dbd17309d"
}
]
}
我哪里错了?
我假设您使用的是 Apache Solr 5.0...我也遇到了与您遇到的相同问题。
这似乎与最近已解决的问题有关:
https://issues.apache.org/jira/browse/SOLR-7174
如果你检查 Solr 的主干版本并使用它,你会看到这个问题已经修复,如果你想自己测试这个,我会给你留下几个链接。
svn.apache.org/repos/asf/lucene/dev/trunk/ -> Link 用于 SOLR 结帐
https://wiki.apache.org/solr/HowToCompileSolr -> 如何编译 SOLR 并将其用于当前安装
或者您可以等待新的 SOLR 版本,应该可以解决这个问题。
我必须构建一个应用程序,我必须在其中搜索属于 PDF、DOC、DOCX 等文件。我想使用 Solr 来索引包含我所有文件的整个目录,然后在文档中搜索单词。
我在网上看到更快的方法是使用 DIH。我是这样设置这家旅馆的:
solrConfig.xml
<requestHandler name="/update/extract"
startup="lazy"
class="solr.extraction.ExtractingRequestHandler" >
<lst name="defaults">
<str name="lowernames">true</str>
<str name="uprefix">ignored_</str>
<!-- capture link hrefs but ignore div attributes -->
<str name="captureAttr">true</str>
<str name="fmap.a">links</str>
<str name="fmap.div">ignored_</str>
</lst>
</requestHandler>
solr-数据-config.xml
<dataConfig>
<dataSource type="BinFileDataSource" name="bin"/>
<document>
<entity name="sd"
processor="FileListEntityProcessor"
baseDir="C:\Solr\solr-5.0.0\docs\myFolder\"
fileName=".*\.(doc)|(pdf)|(docx)"
recursive="true"
rootEntity="false"
transformer="DateFormatTransformer">
<entity name="tika-test" processor="TikaEntityProcessor" url="${sd.fileAbsolutePath}"
format="text">
<field column="text" name="text"/>
</entity>
<field column="fileSize" name="size" />
<field column="file" name="filename" />
</entity>
</document>
</dataConfig>
当我从 DataImport(Web 管理页面)启动 "Execute" 时,我得到:
Indexing completed. Added/Updated: 1 documents. Deleted 0 documents. (Duration: 03s)
Requests: 0 (0/s), Fetched: 329 (110/s), Skipped: 0, Processed: 1
我在这个 folter 中有很多 doc、pdf 和 docx(显示... 329),但只有第一个已被处理,如果我执行查询,我只得到文件名...任何内容。
"response": {
"numFound": 1,
"start": 0,
"docs": [
{
"fileName": "first_doc.doc",
"id": "4a06f6de-870d-4db9-875d-cd8dbd17309d"
}
]
}
我哪里错了?
我假设您使用的是 Apache Solr 5.0...我也遇到了与您遇到的相同问题。
这似乎与最近已解决的问题有关:
https://issues.apache.org/jira/browse/SOLR-7174
如果你检查 Solr 的主干版本并使用它,你会看到这个问题已经修复,如果你想自己测试这个,我会给你留下几个链接。
svn.apache.org/repos/asf/lucene/dev/trunk/ -> Link 用于 SOLR 结帐 https://wiki.apache.org/solr/HowToCompileSolr -> 如何编译 SOLR 并将其用于当前安装
或者您可以等待新的 SOLR 版本,应该可以解决这个问题。