• solr配置分词器


    一、solr4.10 + mmseg4j-2.2.0分词器

    1、solr的安装部署:http://www.cnblogs.com/honger/p/5876289.html,注意不同的版本安装方式可能不同。

    solr与mmseg4j对应的版本,不要弄错,否则会出错。

    • mmseg4j-solr-2.0.0.jar 要求 lucene/solr >= 4.3.0。在 lucene/solr [4.3.0, 4.7.1] 测试过兼容可用。
    • mmseg4j-solr-2.1.0.jar 要求 lucene/solr 4.8.x
    • mmseg4j-solr-2.2.0.jar 要求 lucene/solr [4.9, 4.10.x]
    • mmseg4j-solr-2.3.0.jar 要求 lucene/solr [5.0, ]

    地址:https://github.com/chenlb/mmseg4j-solr,往下拉找到下载,点击即可

     2、下载好后,解压,将解压出来的两个jar包使用拷贝到tomcat的solr工程的lib下面,将mmseg4j-core-1.10.0.jar里的data文件夹里的以*.dic结尾的文件拷贝到solrhome的dic文件夹下,这个dic文件夹是自己创建的。

    3、修改solrhome/collection2/conf/schma.xml,添加以下代码(collection2是你创建的core对象,以你自己创建的为准,代码中dicPath这个属性指的是你的dic文件目录,这里使用的是相对路径,相对于solrhome)

    <fieldtype name="textComplex" class="solr.TextField" positionIncrementGap="100">
        <analyzer>
            <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex" dicPath="dic"/>
        </analyzer>
    </fieldtype>
    <fieldtype name="textMaxWord" class="solr.TextField" positionIncrementGap="100">
        <analyzer>
            <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="max-word" />
        </analyzer>
    </fieldtype>
    <fieldtype name="textSimple" class="solr.TextField" positionIncrementGap="100">
        <analyzer>
            <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="simple" dicPath="dic" />
        </analyzer>
    </fieldtype>

    4、启动tomcat

    二、第二种方式solr-4.10.0 IKAnalyzer分词器

    IKAnalyzer分词器目前只能支持到solr5以下,以上的已经不支持了

    1、IKAnalyzer分词器的下载:http://pan.baidu.com/s/1cBUw5g

    2、IKAnalyzer解压后的目录结构,将其中的jar包拷贝到solr/WEB-INF/lib下,再将

    IKAnalyzer.cfg.xml、ext_stopword.dic  mydict.dic  copyTomcat

    webapps/solr/WEB-INF/classes下

    3、修改你想要增加字段域的那个core下的schema.xml,我的是collection1添加以下代码

    <fieldType name="text_ik" class="solr.TextField">
      <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
    </fieldType>
    
    <field name="item_title" type="text_ik" indexed="true" stored="true"/>

     4、启动tomcat

     solrjTest.java参考文档地址:http://mirrors.cnnic.cn/apache/lucene/solr/ref-guide/apache-solr-ref-guide-6.2.pdf,可用ctrl+s将它下载下来。

    import org.apache.solr.client.solrj.SolrClient;
    import org.apache.solr.client.solrj.SolrQuery;
    import org.apache.solr.client.solrj.impl.HttpSolrClient;
    import org.apache.solr.client.solrj.response.QueryResponse;
    import org.apache.solr.common.SolrDocument;
    import org.apache.solr.common.SolrDocumentList;
    import org.apache.solr.common.SolrInputDocument;
    import org.junit.Test;
    
    public class SolrTest {
        
        @Test
        public void create() throws Exception { 
            String urlString = "http://192.168.243.128:8080/solr";
            SolrClient solr = new HttpSolrClient.Builder(urlString).build();
            //集群
            /*String zkHostString = "zkServerA:2181,zkServerB:2181,zkServerC:2181/solr";
            SolrClient solr = new CloudSolrClient.Builder().withZkHost(zkHostString).build();*/
            SolrInputDocument document = new SolrInputDocument();
            document.addField("id", "552199");
            document.addField("name", "Gouda cheese wheel");
            document.addField("price", "49.99");
            solr.add(document);
             
            // Remember to commit your changes!
             
            solr.commit();
        }
        
        @Test
        public void delete() throws Exception {
            String urlString = "http://192.168.243.128:8080/solr";
            SolrClient solr = new HttpSolrClient.Builder(urlString).build();
            solr.deleteById("552199");
            solr.deleteByQuery("id:100");
            solr.commit();
        }
        
        @Test
        public void query() throws Exception {
            String urlString = "http://192.168.243.128:8080/solr";
            SolrClient solr = new HttpSolrClient.Builder(urlString).build();
            SolrQuery query = new SolrQuery();
            query.setQuery("*:*");
            query.setStart(20);
            query.setRows(50);
            //增加高亮域
            query.setHighlight(true);
            query.addHighlightField("item_title");
            query.setHighlightSimplePre("<em style="color:red">");
            query.setHighlightSimplePost("</em>");
            query.addHighlightField("item_title");
            QueryResponse queryResponse = solr.query(query);
            SolrDocumentList solrDocumentList = queryResponse.getResults();
            for (SolrDocument solrDocument : solrDocumentList) {
                System.out.println("------------------------------------");
                System.out.println(solrDocument.get("id"));
                System.out.println(solrDocument.get("item_title"));
                System.out.println(solrDocument.get("item_category_name"));
                System.out.println(solrDocument.get("item_sell_point"));
                System.out.println(solrDocument.get("item_price"));
                System.out.println("------------------------------------");
            }
        }
        
    
    }
  • 相关阅读:
    怎样跟老板提加薪,来看看自己值多少钱
    leetcode-204-Count Primes
    Atitit. 异常的使用总结最佳实践java .net php Vo8f
    设计模式——第一课
    linux svn命令具体解释
    BTrace介绍和生产环境样例
    5.3.5 namedtuple() 创建命名字段的元组结构
    linux驱动开发之九鼎板载蜂鸣器驱动测试【转】
    hrtimer高精度定时器的简单使用【学习笔记】
    Linux时间子系统之(一):时间的基本概念【转】
  • 原文地址:https://www.cnblogs.com/honger/p/5903090.html
Copyright © 2020-2023  润新知