6

我尝试使用 Sitecore 7 索引 PDF 文件。我安装了 IFilter ,但在爬虫日志中收到下一个错误:

ManagedPoolThread #17 09:24:20 WARN  LuceneIndexOperations : Update : Could not build document data 4433434-3443-3223-91c4-233232. Skipping.
Exception: System.Runtime.InteropServices.COMException
Message: Error HRESULT E_FAIL has been returned from a call to a COM component.
Source: mscorlib
   at System.Runtime.InteropServices.ComTypes.IPersistFile.Load(String pszFileName, Int32 dwMode)
   at Sitecore.ContentSearch.Extracters.IFilterTextExtraction.FilterLoader.LoadAndInitIFilter(String fileName, String extension)
   at Sitecore.ContentSearch.Extracters.IFilterTextExtraction.FilterReader..ctor(String fileName)
   at Sitecore.ContentSearch.ComputedFields.MediaItemIFilterTextExtractor.ComputeFieldValue(IIndexable indexable)
   at Sitecore.ContentSearch.ComputedFields.MediaItemContentExtractor.ComputeFieldValue(IIndexable indexable)
   at Sitecore.ContentSearch.LuceneProvider.LuceneDocumentBuilder.AddComputedIndexFields()
   at Sitecore.ContentSearch.LuceneProvider.LuceneIndexOperations.GetIndexData(IIndexable indexable, IIndexable latestVersion, IProviderUpdateContext context)
   at Sitecore.ContentSearch.LuceneProvider.LuceneIndexOperations.BuildDataToIndex(IProviderUpdateContext context, IIndexable version, IIndexable latestVersion)
   at Sitecore.ContentSearch.LuceneProvider.LuceneIndexOperations.<>c__DisplayClass7.<Update>b__0(Item version)

我必须做的工作是因为在 Sitecore 文档中他们说它必须开箱即用。

4

2 回答 2

5

我遇到了同样的问题,我收到了 Sitecore 支持的下一个回复(之后它工作正常):

1) 将所有 Adob​​e iFilter .dll 文件复制到“\System32\Inetsrv”文件夹中。这是 Windows Server 上 IIS 的工作目录。Adobe iFilter .dll 文件默认存储在“C:\Program Files\Adobe\Adobe PDF iFilter 9 for 64-bit platforms\bin”文件夹中。您也可以使用“IFilter Explorer”工具检测 .dll 文件所在的文件夹: http ://www.citeknet.com/Products/IFilters/IFilterExplorer/tabid/62/Default.aspx 更多详情请参见截图: http ://screencast.com/t/xmWukanM+

2)删除“Website/App_Data/MediaCache”文件夹下的所有文件;

3) 重建 Sitecore 搜索索引(Sitecore -> 控制面板 -> 索引 -> 索引管理器);

4) 清除 Sitecore 缓存(http://{hostname}/sitecore/admin/cache.aspx 工具);5)重启IIS;

于 2013-08-01T16:00:19.293 回答
2

这是我采取的解决方案,因为我不喜欢将 iFilter 相关的 DLL 处理到系统路径中的想法。

  • 安装 Adob​​e IFilter 9(我使用了这个链接)。注意版本 9是必不可少的,因为从版本 X 开始,他们放弃了基于文件的界面。
  • 将过滤器位置添加到 PATH 环境变量。就我而言,它是%ProgramFiles%\Adobe\Adobe PDF iFilter 9 for 64-bit platforms\bin\
  • iisreset
  • 返回 Sitecore 应用程序并为必要的索引运行索引重建。

供您考虑:

  • 在尝试解决问题时,我授予了对应用程序池帐户的 IFilter 文件夹的完全访问权限。我认为没有必要,因为我最后删除了它,一切仍然正常。

在这些步骤之后,PDF 索引开始在我在 Windows 8.1 上运行的 Sitecore 7 实例上正常工作。

于 2013-11-25T23:56:36.293 回答