• Solr 的自定义索引库<二>


     一 步骤

    1、Cope一个模板(collection1),修改目录名称

    2、修改索引库名称:core.properties

    3、配置自定义的业务字段:schema.xml文件

    4、如果solr中方法不满足需求时,那么可以去配置。

     

    1.创建cyan索引库:复制collection1  修改名称为cyan

    2 修改索引库名称为article

    3 修改schema.xml文件

    article :字段

    • id   不切词  String类型  为主键
    • title 切词  text_general类型
    • content   切词  text_general类型
    • keywords  切词  text_general类型 且允许多值 multiValued="true"  (将title 和content 字段拷贝到keywords)
    <?xml version="1.0" encoding="UTF-8" ?>
    <schema name="example" version="1.5">
       <field name="_version_" type="long" indexed="true" stored="true"/>
       <field name="_root_" type="string" indexed="true" stored="false"/>
       
       <field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 
       <field name="title" type="text_general" indexed="true" stored="true" required="true" multiValued="false" /> 
       <field name="content" type="text_general" indexed="true" stored="true" required="true" multiValued="false" /> 
       <field name="keywords" type="text_general" indexed="true" stored="true" required="true" multiValued="true" /> 
      
     <uniqueKey>id</uniqueKey>
    
       <copyField source="title" dest="keywords"/>
       <copyField source="content" dest="keywords"/>
       
        <fieldType name="string" class="solr.StrField" sortMissingLast="true" />
        <fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/>
        
        <fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
          <analyzer type="index">
            <tokenizer class="solr.StandardTokenizerFactory"/>
            <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
            <filter class="solr.LowerCaseFilterFactory"/>
          </analyzer>
          <analyzer type="query">
            <tokenizer class="solr.StandardTokenizerFactory"/>
            <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
            <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
            <filter class="solr.LowerCaseFilterFactory"/>
          </analyzer>
        </fieldType>
    
    </schema>

    启动tomcat 访问  http://localhost/solr/   选择索引库article  测试分词, 可以看到把'' 我爱敲代码''  切分成一个一个的词  . 需要配置第三方中文分词器

     二 配置 IK中文分词器

    1、导入ik的jar放到solr服务器中;

        IKAnalyzer2012FF_u1.jar

    2、自定义字段类型: text_ik   修改schema.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <schema name="example" version="1.5">
       <field name="_version_" type="long" indexed="true" stored="true"/>
       <field name="_root_" type="string" indexed="true" stored="false"/>
       
       <field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 
       <field name="title" type="text_ik" indexed="true" stored="true" required="true" multiValued="false" /> 
       <field name="content" type="text_ik" indexed="true" stored="true" required="true" multiValued="false" /> 
       <field name="keywords" type="text_ik" indexed="true" stored="true" required="true" multiValued="true" /> 
      
     <uniqueKey>id</uniqueKey>
    
       <copyField source="title" dest="keywords"/>
       <copyField source="content" dest="keywords"/>
       
        <fieldType name="string" class="solr.StrField" sortMissingLast="true" />
        <fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/>
        
        <fieldType name="text_ik" class="solr.TextField" >
          <analyzer type="index" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
          <analyzer type="query" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
        </fieldType>
        
    </schema>

    再次开启tomcat 访问 solr 

    输入"我爱敲代码" 测试

    这样就完成了自定义索引库了

  • 相关阅读:
    剑指offer-翻转单词序列
    剑指offer-丑数
    剑指offer-把数组排成最小的数
    mysql笔记(13)-视图的概念和使用
    mysql笔记(12)-外键约束的添加和删除
    mysql笔记(11)-约束的添加、修改和删除
    mysql笔记(10)-数据的插入和更新(insert/update/case)
    mysql笔记(9)-表的创建和删除(drop/truncate/delete)
    mysql笔记(8)-嵌套查询之in、exists
    mysql笔记(7)-多表查询之自然连接、外连接
  • 原文地址:https://www.cnblogs.com/Cyan-W/p/9999953.html
Copyright © 2020-2023  润新知