目 录CONTENT

文章目录

数工总结 | Solr 知识点

Wissy
2017-06-03 / 0 评论 / 0 点赞 / 42 阅读 / 0 字

使用 Tika 在中支持 pdf 和 doc搜索

下载solr

https://mirrors.tuna.tsinghua.edu.cn/apache/lucene/solr/6.5.1/solr-6.5.1.tgz

点击去Solr主页

配置一个普通的solr core

wget https://mirrors.tuna.tsinghua.edu.cn/apache/lucene/solr/6.5.1/solr-6.5.1.tgz # 已下载请忽略

tar xzvf solr-6.5.1.tgz #解压

cd solr-6.5.1/server/solr

cp -r  configsets/basic_configs ./mytestconf # 复制配置文件
solr6 支持动态字段添加,不需要配置schema.xml文件

到此为止,一个普通的solr core配置完毕了

<!-- more -->

配置一个支持pdf解析的solr core

  • 复制配置文件

cp -r  configsets/basic_configs ./mypdfconf
  • 复制需要的依赖包

cp -r ../../contrib/extraction/lib ./mypdfconf/ 
cp ../../dist/solr-dataimporthandler-* ./mypdfconf/lib/
  • 编辑solrconfig配置文件

vim mypdfconf/conf/solrconfig.xml 
  • 添加依赖配置到94行

   <lib dir="./lib" regex=".*\.jar" />
  • 配置dataimport到860行

   <requestHandler name="/dataimport" class="solr.DataImportHandler">
    <lst name="defaults">
      <str name="config">tika-data-config.xml</str>
    </lst>
   </requestHandler>
  • 配置 tika-data-config.xml

vim tika-data-config.xml
  • 添加以下内容

      <dataConfig>
       <script><![CDATA[
            id = 1;
            function GenerateId(row) {
                row.put('id', (id ++).toFixed());
                return row;
            }
            function WipOffHtml(row) {
                var file = row.get('file');
                row.put('file',file.substr(0,file.indexOf('.')));
                return row;
            }
           ]]>
       </script>
           <dataSource type="BinFileDataSource" />
               <document>
                <entity    name="files" dataSource="binary"    rootEntity="false"
                   processor="FileListEntityProcessor"
                baseDir="/tmp/pdfs" fileName=".*.(doc)|(pdf)|(xls)|(ppt)|(docx)"
                recursive="true">
                    <field  column="fileAbsolutePath" name="filePath" />
                    <field  column="fileSize" name="size" />
                    <field  column="fileLastModified" name="lastModified" />
                    <entity  name="documentImport"  processor="TikaEntityProcessor"  url="${files.fileAbsolutePath}" format="text" transformer="HTMLStripTransformer,RegexTransformer,script:GenerateId">
                        <field  column="file" name="fileName"/>
                        <field column="id" name="id" />
                        <field  column="Author" name="author" meta="true"/>
                        <field  column="title" name="title" meta="true"/>
                        <field  column="text" name="text" stripHTML="true" regex="\t|\r|\n|\s"
                        replaceWith="" />
                    </entity>
                  </entity>
               </document>
    </dataConfig>
  • 添加pdf,doc文档(非扫描版)

cp ../../../../example/exampledocs/solr-word.pdf /tmp/pdfs/

添加core

图片丢了...

导入pdf数据

图片丢了...

配置scame 分别添加 text,title,author,filePath,size,lastModified

搜索

图片丢了...

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区