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中使用,也是改這個地方
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章