solr文本文件建立索引(以PHP文件为例)与高亮显示文件不全的问题

1、与前面的文章一样,还是得建立数据导入方式跟查询方式。在实例的conf文件下建立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="D:\****\****\******" fileName=".*.(php)"
            recursive="true">  
			<!-- 文件类型实体,下接要建立索引的文件路径跟物件类型,如果有多种文件类型则是fileName=".*.(doc)|(pdf)|(xls)|(ppt)|(docx)|(XXXXX)" -->
                <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" />  
                    <!-- 这里面就是你要建立的文件名称了,比如你要读取作者、名字、文本、文件类型,还有其他的就自己可以加 -->
                </entity>  
              </entity>  
           </document>  
</dataConfig> 

2、配置solrconfig.xml,添加

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">    
     <lst name="defaults">    
        <str name="config">tika-data-config.xml</str>    
     </lst>    
</requestHandler>

3、配置managed-schema,添加

	<field name="fileName" type="string" indexed="true" stored="true"/>
	<field name="filePath" type="string" indexed="true" stored="true"/>
	<field name="author" type="string" indexed="true" stored="true"/>
	<field name="title" type="string" indexed="true" stored="true"/>
	<field name="text" type="text_general" indexed="true" stored="true" multiValued="true"/>

"id"默认就有的,就不配了,这里加上自己想要的,上文也解释了一下其他的情况,这里不做介绍了。
4、准备JAR包,拷贝solr发布包solr-****\contrib\extraction\lib下所有jar包到apache-tomcat-*****\webapps\solr\WEB-INF\lib文件夹下。***代表你自己使用的版本。
5、启动测试
在这里插入图片描述
在这里插入图片描述
接下来查询就OK了。但是有的时候,再你高亮的时候回出现高亮得不多的情况,为什么呢?因为你配置的最大段默认是100,你只需要改大就可以了,在solrconfig中改大

 <fragmenter name="gap"
                  default="true"
                  class="solr.highlight.GapFragmenter">
        <lst name="defaults">
          <int name="hl.fragsize">100000</int>
        </lst>
      </fragmenter>

关键是改fragsize中,如果是在solrJ中使用,也是改这个地方
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/u012313382/article/details/84201791
今日推荐