solr使用笔记

solr使用笔记

solr配置

  1. 环境配置
    1.1 jdk安装, JAVA_HOME 要配置,否则solr启动会报错,我也是试过了才知道的, 以前一直以为 JAVA_HOME 没啥用 . 果然,存在就是有作用的 .
    1.2 solr的core生成
    将 server\solr\configsets\basic_configs\conf 下的所有文件都复制到要新建的core文件目录下,然后在solr界面中新建core, 详细的网上有很多
    1.3 ik配置
    1.3.1 jar包, 讲jar包放在 **/server/solr-webapp/webapp/WEB-INF/lib
    ik-analyzer-solr5-5.x.jar
    IKAnalyzer2012FF_u1.jar
    1.3.2 配置文件
    schema.xml

     <fieldType name="text_ik" class="solr.TextField">   
       <analyzer type="index" isMaxWordLength="false" class="org.wltea.analyzer.lucene.IKAnalyzer"/>   
       <analyzer type="query" isMaxWordLength="true" class="org.wltea.analyzer.lucene.IKAnalyzer"/>   
    </fieldType>
    
    <!-- 字段设置 -->
    <field name="fileName" type="text_ik" indexed="true" stored="true"/>  
     <field name="filePath" type="text_ik" indexed="true" stored="true"/>  
     <field name="author" type="string" indexed="true" stored="true"/>  
     <field name="title" type="text_ik" indexed="true" stored="true"/>  
     <field name="text" type="text_ik" indexed="true" stored="true"/>
    

    到这里了可以进入solr界面看看ik分词器是否实现

    IKAnalyzer.cfg.xml
    在core的conf目下的IKAnalyzer.cfg.xml文件中配置,没有就自己创建

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">  
    <properties>  
    	<comment>IK Analyzer 扩展配置</comment>
    	<!--用户可以在这里配置自己的扩展字典 -->
    	<!--<entry key="ext_dict">ext.dic;</entry>  -->
    	<!--用户可以在这里配置自己的扩展停止词字典-->
    	<entry key="ext_stopwords">stopword.dic;</entry> 	
    </properties>
    

    到这里solr也就基本能用了

    1.4 文件索引配置
    solrconfig.xml
    直接在solr界面读取目标目录索引的配置

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

    在Java代码中添加solr索引的配置

    <requestHandler name="/addFile" class="solr.extraction.ExtractingRequestHandler" >
       <lst name="defaults">
    	<str name="fmap.content">text</str>
    	<str name="fmap.filepath">filePath</str>
    	<str name="fmap.filename">fileName</str>
    	<str name="fmap.meta">ignored_</str>
    	<str name="lowernames">true</str>
    	<str name="uprefix">ignored_</str>
    	<str name="captureAttr">true</str>
       </lst>
      </requestHandler>   
    

    tika-data-config.xml

    <dataConfig>
    <dataSource type="BinFileDataSource"/>
    <document>
        <entity name="files" dataSource="null" rootEntity="false" processor="FileListEntityProcessor" 
    	baseDir="E:/rta/repair" fileName=".(doc)|(pdf)|(docx)|(txt)|(csv)|(json)|(xml)|(pptx)|(pptx)|(ppt)|(xls)|(xlsx)" recursive="true">  
                <field column="file" name="id"/>
    			<field column="fileAbsolutePath" name="filePath" />
    			<field column="file" name="fileName"/> 
    			
                <entity name="file"  processor="TikaEntityProcessor"  url="${files.fileAbsolutePath}" format="text">  
                    
                    <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>
    

    到这里solr的配置基本已经没问题了

solr遇到的一些问题

1. 在Java中添加文件索引时,索引名称大小写问题
	在Java代码中添加索引时会出现这种情况,明明添加的索引名称带大小写可是存到solr中的索引名称就全变成小写的了. 
	经过多次尝试后,发现只要在solrconfig.xml的requestHandler中添加这个,具体的上面有
		<str name="fmap.content">text</str>
		<str name="fmap.filepath">filePath</str>
		<str name="fmap.filename">fileName</str>
2.  ...  ...还有个问题忘了, 下次想起来再补上
3. 启动时遇到过一个问题:  {{core}}: {{error}}, 瞎捣鼓一下午, 啥也没改, 突然一下子就好了, 感觉跟日了狗一样

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值