`

solr中使用paoding

 
阅读更多

solr版本3.4.0

paoding版本(Revision154), 下载源代码http://paoding.googlecode.com/svn/trunk/,  到paoding-analysis目录执行build.bat, 生成paoding-analysis.jar

 

package com.sh2600.test.paoding;

import java.io.Reader;  
import java.util.Map;  
  
import net.paoding.analysis.analyzer.PaodingTokenizer;  
import net.paoding.analysis.analyzer.TokenCollector;  
import net.paoding.analysis.analyzer.impl.MaxWordLengthTokenCollector;  
import net.paoding.analysis.analyzer.impl.MostWordsTokenCollector;  
import net.paoding.analysis.knife.PaodingMaker;  
  
import org.apache.lucene.analysis.Tokenizer;
import org.apache.solr.analysis.BaseTokenizerFactory;  

public class ChineseTokenizerFactory extends BaseTokenizerFactory {
    /** 
     * 最多切分 默认模式 
     */  
    public static final String MOST_WORDS_MODE = "most-words";  
  
    /** 
     * 按最大切分 
     */  
    public static final String MAX_WORD_LENGTH_MODE = "max-word-length";  
  
    private String mode = null;  
  
    public void setMode(String mode) {  
        if (mode == null || MOST_WORDS_MODE.equalsIgnoreCase(mode)  
                || "default".equalsIgnoreCase(mode)) {  
            this.mode = MOST_WORDS_MODE;  
        } else if (MAX_WORD_LENGTH_MODE.equalsIgnoreCase(mode)) {  
            this.mode = MAX_WORD_LENGTH_MODE;  
        } else {  
            throw new IllegalArgumentException("不合法的分析器Mode参数设置:" + mode);  
        }  
    }  
  
    @Override  
    public void init(Map args) {  
        super.init(args);  
        setMode(args.get("mode").toString());  
    }  
  
    public Tokenizer create(Reader input) {  
        return new PaodingTokenizer(input, PaodingMaker.make(),  
                createTokenCollector());  
    }  
  
    private TokenCollector createTokenCollector() {  
        if (MOST_WORDS_MODE.equals(mode))  
            return new MostWordsTokenCollector();  
        if (MAX_WORD_LENGTH_MODE.equals(mode))  
            return new MaxWordLengthTokenCollector();  
        throw new Error("never happened");  
    }  	
}

 

以上代码打包为paoding4solr.jar, 和paoding-analysis.jar放到$solr.home/lib下

复制词典(dic目录)到/opt/paoding/dic

复制paoding-*.properties到classpath(例如tomcat/lib下,  放到$solr.home/lib似乎不行)

修改paoding-dic-home.properties中的paoding.dic.home=/opt/paoding/dic

 

修改$solr.home/conf/schema.xml

 

<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
    <analyzer type="index">
        <!--<tokenizer class="solr.WhitespaceTokenizerFactory"/>-->
        <tokenizer class="com.sh2600.test.paoding.ChineseTokenizerFactory" mode="most-words"/>
        ......
    </analyzer> 
  <analyzer type="query"> 
        <!--<tokenizer class="solr.WhitespaceTokenizerFactory"/>--> 
    <tokenizer class="com.sh2600.test.paoding.ChineseTokenizerFactory" mode="most-words"/>
    ......
    </analyzer> 
</fieldType>
 

重启solr

 

执行数据导入,查询

 

参考

http://tech.ddvip.com/2009-09/1252589447132071.html

http://www.iteye.com/topic/364513

 

分享到:
评论

相关推荐

    sorlr + tomcat+ 庖丁解牛中文分词 配置文档

    标题 "sorlr + tomcat+ 庖丁解牛中文分词 配置文档" 提到的是一个关于在Apache Solr中集成Tomcat服务器,并利用庖丁解牛中文分词工具进行中文处理的配置教程。这个配置过程对于搭建支持中文搜索的Solr环境至关重要。...

    Solr中文教程技术文档.docx

    在 Solr 中使用时,需要引入相关类库,并在 `schema.xml` 中配置分词器。例如: ```xml ``` 这里 `mode="most-words"` 表示使用最大切词模式。 总之,Solr 是一个强大的全文搜索引擎,通过与 Lucene...

    solr培训.ppt

    - Solr被广泛应用于各种大型网站和应用程序中,以满足大规模数据的检索需求。 #### 二、Lucene的工作原理 - **文档处理流程**: - **分词**:将文档内容分割成单独的词汇单位,英文可以利用空格自然分词,中文则...

    solr+paoding

    - **庖丁分词库**: 通常以“庖丁 jar”形式提供,可以直接集成到 Solr 中。 - **中文分词的重要性**: 对于中文等非拉丁字母语言,分词是全文检索的关键步骤。合理的分词能够显著提升搜索效果。 #### 五、Solr与...

    solr全文检索

    例如,可以使用qieqie庖丁分词工具。在Solr中创建一个自定义的`TokenizerFactory`,继承自Solr的`BaseTokenizerFactory`,并集成qieqie的分词算法,以支持最多切分和按最大切分模式。 ```java public class ...

    兼容solr4.10.2的ik-mmseg4j-paoding分词器

    能兼容solr-4.10.2的分词器,大礼包全放送.包括IK分词器,mmseg4j分词器,庖丁分词器.都是经本人测试可用,其中mmseg4j与庖丁都是下载源码,修改重编译并测试生成的.希望大家喜欢.至于与solr的整合方式,网上很多,这里就不...

    Solr培训文档

    开源搜索引擎Solr学习 搜索引擎发展大事记 搜索引擎分类--目录式搜索引擎 搜索引擎分类--索引式搜索引擎 搜索引擎分类--元搜索引擎 开源搜索引擎Lucene家族 搜索引擎的三大核心 中文分词 ...庖丁解牛分词器

    中文搜索分词lucene包+paoding包

    3. **查询处理**:当用户输入查询时,同样使用Paoding对查询字符串进行分词,然后在Lucene的索引中查找匹配的文档。 4. **结果返回**:根据匹配程度和相关性算法,Lucene会返回最相关的搜索结果。 在实际应用中,...

    paoding-analysis-4.4.0.jar

    paoding-analysis-4.4.0.jar 庖丁分词jar,支持lucene4.4.0及solr4.4.0版本。

    paoding 分词

    在Java领域中,paoding(又称“庖丁”)是一个高效、灵活的中文分词库,专为处理大规模中文文本而设计。本文将详细介绍paoding分词的环境搭建过程及其核心特性,旨在帮助读者深入理解和应用这一工具。 **一、...

Global site tag (gtag.js) - Google Analytics