问题

Confluence 提供给了对附件内容索引的功能,比如上传一个word格式的附件,Confluene会解析附件的内容并对其内容建立索引,这样用户搜索时就可以搜到附件里的内容了。

这个功能看起来很好,但部署的规模大了后,confluence的内容很多,建索引就变慢,索引占了很大的磁盘空间,更有甚者, 传一个大的附件上去就把Confluence直接搞死了

这个时候我们需要取舍,牺牲功能来换取稳定,大道至简, 在一些大型的应用上禁用了很了很多功能的都有


解决方法就是禁用confluence的附件索引,不解析中这些附件的功能,把相关的功能屏蔽掉 ,有以下两种方法


方法一: 界面上禁用插件


这种方法从 Confluence 7开始就不适用了,因为要禁用的插件是系统插件, 从Confluence7.x开始就不允许从界面禁用系统插件了

  1. Confluence 管理员点右上角的管理齿轮⚙图标进入  管理→ 管理应用
  2. 选择 系统应用
  3. 找到 Attachment Extractors 插件
    1. 点击展开
    2. 选择 PDF Content Extractor
    3. 点击禁用
  4. 找到 Office Connector 插件
    1. 点击展开
    2. 选择以下模块,并逐个禁用
      1. Word Content Extractor
      2. Word XML Content Extractor
      3. Powerpoint 97 Content Extractor
      4. Powerpoint 2007 Content Extractor
      5. Excel 97 Content Extractor
      6. Excel 2007 Content Extractor

方法二: 编辑atlassian-plugin.xml文件

需要修改这两个JAR包里的atlassian-plugin.xml 文件

  • confluence-attachment-extractors-x.x.jar       (pdf解析插件)
  • OfficeConnector-x.x.jar                                                           (Office插件)

jar包文件的路劲挂在 confluence的安装目录(默认是 /opt/atlassian/confluence)下的 confluence/WEB-INF/atlassian-bundled-plugins/  的目录下 

解开jar包, 并修改 atlassian-plugin.xml 文件(插件的模块文件), 把相关模块禁用, 然后再重新打包


 以confluence-attachment-extractors-x.x.jar  为例, 需要把pdfContentExtractor注释掉

<atlassian-plugin key="com.atlassian.confluence.plugins.attachmentExtractors" name="Attachment Extractors">
    <plugin-info>
        <description>This plugin extracts searchable text from various attachment types.</description>
        <version>1.1</version>
        <vendor name="Atlassian Pty Ltd" url="http://www.atlassian.com/"/>
    </plugin-info>

    <!--
    <extractor name="PDF Content Extractor" key="pdfContentExtractor" class="com.atlassian.bonnie.search.extractor.PdfContentExtractor" priority="1100">
        <description>Indexes contents of PDF files</description>
    </extractor>
    -->

</atlassian-plugin>
CODE


OfficeConnector-x.x.jar 中需要禁用的模块有

附件类型要禁用的 Extractor
Word 97/2007 (.doc and .docx)
<extractor name="Word Content Extractor" key="wordContentExtractor" class="com.atlassian.confluence.extra.officeconnector.index.word.WordTextExtractor" priority="1099">
    <description>Indexes contents of Word 97/2007 files</description>
</extractor>
CODE
PowerPoint 97 (.ppt)
<extractor name="PowerPoint 97 Content Extractor" key="ppt97ContentExtractor" class="com.atlassian.confluence.extra.officeconnector.index.powerpoint.PowerPointTextExtractor" priority="1099">
    <description>Indexes contents of PowerPoint 97 files</description>
</extractor>
CODE
PowerPoint 2007 (.pptx)
<extractor name="PowerPoint 2007 Content Extractor" key="ppt2k7ContentExtractor" class="com.atlassian.confluence.extra.officeconnector.index.powerpoint.PowerPointXMLTextExtractor" priority="1099">
    <description>Indexes contents of PowerPoint 2007 files</description>
</extractor>
CODE
Excel 97 (.xls)
<extractor name="Excel 97 Content Extractor" key="excel97ContentExtractor" class="com.atlassian.confluence.extra.officeconnector.index.excel.ExcelTextExtractor" priority="1099">
    <description>Indexes contents of Excel 97 files</description>
</extractor>
CODE
Excel 2007 (.xlsx)
<extractor name="Excel 2007 Content Extractor" key="excel2k7ContentExtractor" class="com.atlassian.confluence.extra.officeconnector.index.excel.ExcelXMLTextExtractor" priority="1099">
    <description>Indexes contents of Excel 2007 files</description>
</extractor>
CODE