含Solr和Tika的PDF索引内容
简单地说就是这个问题:我希望Sitecore使用Solr的内置功能(由Tika提供)为PDF的内容编制索引。我不知道如何配置Sitecore的索引以在Solr(Tika)中使用此功能。(我想我需要编写一个自定义索引器。) 我正在使用Sitecore 7(7.1更新1),希望为PDF(或其他富媒体类型)中的内容编制索引。我想为这些数据编制索引,以便于搜索 我已安装Solr(4.6.1)并使用Sitecore 7。当我为我的站点编制索引时,它会将所有文档保存到正确的Solr核心,并且我可以成功地检索这些文档以供显示 使用含Solr和Tika的PDF索引内容,solr,sitecore,sitecore7,apache-tika,sitecore7.1,Solr,Sitecore,Sitecore7,Apache Tika,Sitecore7.1,简单地说就是这个问题:我希望Sitecore使用Solr的内置功能(由Tika提供)为PDF的内容编制索引。我不知道如何配置Sitecore的索引以在Solr(Tika)中使用此功能。(我想我需要编写一个自定义索引器。) 我正在使用Sitecore 7(7.1更新1),希望为PDF(或其他富媒体类型)中的内容编制索引。我想为这些数据编制索引,以便于搜索 我已安装Solr(4.6.1)并使用Sitecore 7。当我为我的站点编制索引时,它会将所有文档保存到正确的Solr核心,并且我可以成功地检索
curl
,我可以将PDF发送到我的Solr实例并将其索引
curl”http://localhost:8983/solr/update/extract?literal._id=doc1&uprefix=attr_&fmap.content=attr_content&commit=true“-F”myfile=@sample.pdf“
这是可行的,我可以在我的Sitecore web项目中阅读此内容并在视图中显示,因此我知道我可以访问此数据。但是,我希望将数据附加到我在Sitecore中上载的项目
当我将PDF上传到Sitecore媒体库并发布该项目时,或者至少当我重新索引该网站时,我希望发生类似的情况
我目前正在浏览以下教程,以了解有关编写自定义索引的一些内容(这里是指向第1部分的链接):
感谢您的耐心。对于Sitecore,在处理媒体数据时,Lucene和Solr需要以一致的方式对内容进行索引(以便您可以在需要时在它们之间切换,并且仍然以相同的方式对数据进行索引)。由于Tika集成在很大程度上是一种解决方案,因此决定两者都应使用IFilter的通用windows概念来编制索引() 这意味着,只要在进行索引的计算机上安装了该mime类型的正确IFilter,则“\u content”computed字段将填充输出 这并不意味着不能使用Solr Tika集成,但默认情况下不支持它,这将是一种定制 这将非常简单:
我支持使用Sitecore内置的MediaItemContentExtractor+IFilter方法的建议,除非您出于某种原因已经排除了这一点()。如果IFilter不是一个选项,或者如果您对另一种方法感兴趣,那么我会与Stephen建议的集成Tika稍微不同 您参考的教程涉及编写自己的搜索提供程序,即完全替换内置提供程序。您应该能够利用Sitecore的Solr提供程序,并使用更轻的工具完成所需的工作:计算索引字段。上面提到的内置媒体提取器使用这种方法,它使您能够在正常索引过程中将任何内容放入索引中。下面是John West的一篇博文,介绍了如何创建一个基本的计算索引字段: 简而言之,编写一个类来实现
IComputedIndexField
,并表示从PDF或其他富文档中提取的内容。在实现ComputeFieldValue
方法时:
- 对文档调用
GetMediaStream()
- 将流以一种方式传递给Solr并捕获结果
- 返回该结果以将其存储在计算索引字段中
无论您采取何种方法,如果您想在比cURL更高的级别上使用Tika,请查看和相关的类。如果您可以将站点升级到sitecore 7.2,在该版本中,媒体项内容将自动编入索引,并且无需安装相关的IFilter,您应该阅读以下内容: