- 浏览: 159898 次
- 性别:
- 来自: 北京
最新评论
-
w156445045:
我最近想写这方面的论文,学位论文啊,哎。希望博主能给点思路,谢 ...
《Lucene+Nutch搜索引擎》看过以后。。。 -
inprice:
这也要研究啊!!!!! 失望ing.........
完成了对于heritrix的初步研究 -
dt_fb:
您好,我想问问您,你有跳过recrawl.sh这个脚本文件么? ...
Nutch开源搜索引擎的crawl日志分析及工作目录说明 -
lovepoem:
能增量吗?是不是还是把所有的url遍历出来。和以前的对比。算是 ...
Nutch开源搜索引擎增量索引recrawl的终极解决办法 -
itang:
见到牛人照片了, MS下巴动过刀(开玩笑)
搜索引擎名人堂之Jeff Dean
---------------------------------------------------20080729---------------------------------------------------
理解疱丁分词的基本原理,编译原码,用ANT编译
E:\workspace\searchengine\paoding-analysis-2.0.4-beta
完成了中文分词的solr集成工作,集成到solr中去,
注意:
1)需要将solr的tomcat的connector改成可接受utf8
<Connector port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8"/>
2)需要将php的格式换成utf-8,在头上加 header("Content-Type: text/html; charset=UTF-8");
3)修改schema.xml
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<!-- tokenizer class="solr.WhitespaceTokenizerFactory"/-->
<!-- 加入中文分词 -->
<tokenizer class="solr.ChineseTokenizerFactory" mode="most-words" />
.....
4)加入paoding时,需要在环境变量加PAODING_DIC_HOME 指定到/dic目录
5)写一个类,org.apache.solr.analysis.ChineseTokenizerFactory包装疱丁分词,详见附录一
-------------------20080730---------
完成lucene与paoding的集成工作
E:\workspace\searchengine\indexdata>java org.apache.lucene.demo.IndexFiles %HERITRIX_HOME%\jobs\default3-20080730031933671\mirror\news.21315.com
info = config paoding analysis from: E:\workspace\searchengine\luncene\test\lucene-2.3.2\bin\paoding-analysis.properties;E:\workspace\searchengine\luncene\test\lucene-2.3.2\file:\E:\workspace\searchengine\paoding-analysis-2.0.4-beta\paoding-analysis.jar!\paoding-analysis-default.properties;E:\workspace\searchengine\luncene\test\lucene-2.3.2\file:\E:\workspace\searchengine\paoding-analysis-2.0.4-beta\paoding-analysis.jar!\paoding-analyzer.properties;E:\workspace\searchengine\luncene\test\lucene-2.3.2\file:\E:\workspace\searchengine\paoding-analysis-2.0.4-beta\paoding-analysis.jar!\paoding-dic-home.properties;E:\workspace\searchengine\paoding-analysis-2.0.4-beta\dic\paoding-dic-names.properties;E:\workspace\searchengine\luncene\test\lucene-2.3.2\file:\E:\workspace\searchengine\paoding-analysis-2.0.4-beta\paoding-analysis.jar!\paoding-knives.properties;E:\workspace\searchengine\luncene\test\lucene-2.3.2\file:\E:\workspace\searchengine\paoding-analysis-2.0.4-beta\paoding-analysis.jar!\paoding-knives-user.properties
info = add knike: net.paoding.analysis.knife.CJKKnife
info = add knike: net.paoding.analysis.knife.LetterKnife
info = add knike: net.paoding.analysis.knife.NumberKnife
info = add knike: net.paoding.analysis.knife.CJKKnife
info = add knike: net.paoding.analysis.knife.LetterKnife
info = add knike: net.paoding.analysis.knife.NumberKnife
info = loading dictionaries from E:\workspace\searchengine\paoding-analysis-2.0.4-beta\dic
info = loaded success!
Indexing to directory 'index'...
adding E:\workspace\searchengine\heritrix\heritrix-1.14.0\target\heritrix-1.14.0\bin\heritrix-1.14.0\jobs\default3-20080730031933671\mirror\news.21315.com\2008\application\x-shockwave-flash
对于疱丁分词的封装
package org.apache.solr.analysis;
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.TokenStream;
/**
* 对于疱丁分词的封装
* @author tufei
*
*/
public class ChineseTokenizerFactory extends BaseTokenizerFactory {
/**
* most words
*/
public static final String MOST_WORDS_MODE = "most-words";
/**
* max word length
*/
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("Irregular Mode args setting:"
+ mode);
}
}
@Override
public void init(Map<String, String> args) {
super.init(args);
setMode((String) args.get("mode"));
}
public TokenStream 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");
}
}
理解疱丁分词的基本原理,编译原码,用ANT编译
E:\workspace\searchengine\paoding-analysis-2.0.4-beta
完成了中文分词的solr集成工作,集成到solr中去,
注意:
1)需要将solr的tomcat的connector改成可接受utf8
<Connector port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8"/>
2)需要将php的格式换成utf-8,在头上加 header("Content-Type: text/html; charset=UTF-8");
3)修改schema.xml
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<!-- tokenizer class="solr.WhitespaceTokenizerFactory"/-->
<!-- 加入中文分词 -->
<tokenizer class="solr.ChineseTokenizerFactory" mode="most-words" />
.....
4)加入paoding时,需要在环境变量加PAODING_DIC_HOME 指定到/dic目录
5)写一个类,org.apache.solr.analysis.ChineseTokenizerFactory包装疱丁分词,详见附录一
-------------------20080730---------
完成lucene与paoding的集成工作
E:\workspace\searchengine\indexdata>java org.apache.lucene.demo.IndexFiles %HERITRIX_HOME%\jobs\default3-20080730031933671\mirror\news.21315.com
info = config paoding analysis from: E:\workspace\searchengine\luncene\test\lucene-2.3.2\bin\paoding-analysis.properties;E:\workspace\searchengine\luncene\test\lucene-2.3.2\file:\E:\workspace\searchengine\paoding-analysis-2.0.4-beta\paoding-analysis.jar!\paoding-analysis-default.properties;E:\workspace\searchengine\luncene\test\lucene-2.3.2\file:\E:\workspace\searchengine\paoding-analysis-2.0.4-beta\paoding-analysis.jar!\paoding-analyzer.properties;E:\workspace\searchengine\luncene\test\lucene-2.3.2\file:\E:\workspace\searchengine\paoding-analysis-2.0.4-beta\paoding-analysis.jar!\paoding-dic-home.properties;E:\workspace\searchengine\paoding-analysis-2.0.4-beta\dic\paoding-dic-names.properties;E:\workspace\searchengine\luncene\test\lucene-2.3.2\file:\E:\workspace\searchengine\paoding-analysis-2.0.4-beta\paoding-analysis.jar!\paoding-knives.properties;E:\workspace\searchengine\luncene\test\lucene-2.3.2\file:\E:\workspace\searchengine\paoding-analysis-2.0.4-beta\paoding-analysis.jar!\paoding-knives-user.properties
info = add knike: net.paoding.analysis.knife.CJKKnife
info = add knike: net.paoding.analysis.knife.LetterKnife
info = add knike: net.paoding.analysis.knife.NumberKnife
info = add knike: net.paoding.analysis.knife.CJKKnife
info = add knike: net.paoding.analysis.knife.LetterKnife
info = add knike: net.paoding.analysis.knife.NumberKnife
info = loading dictionaries from E:\workspace\searchengine\paoding-analysis-2.0.4-beta\dic
info = loaded success!
Indexing to directory 'index'...
adding E:\workspace\searchengine\heritrix\heritrix-1.14.0\target\heritrix-1.14.0\bin\heritrix-1.14.0\jobs\default3-20080730031933671\mirror\news.21315.com\2008\application\x-shockwave-flash
对于疱丁分词的封装
package org.apache.solr.analysis;
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.TokenStream;
/**
* 对于疱丁分词的封装
* @author tufei
*
*/
public class ChineseTokenizerFactory extends BaseTokenizerFactory {
/**
* most words
*/
public static final String MOST_WORDS_MODE = "most-words";
/**
* max word length
*/
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("Irregular Mode args setting:"
+ mode);
}
}
@Override
public void init(Map<String, String> args) {
super.init(args);
setMode((String) args.get("mode"));
}
public TokenStream 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");
}
}
评论
1 楼
lelecheng
2009-02-18
我按照ronghao的文章测试了一下。
运行的时候老报这个错误:
2009-2-18 18:45:06 org.apache.solr.common.SolrException log
严重: java.lang.ClassCastException: com.*.se.analyzer.ChineseTokenizerFactory cannot be cast to org.apache.solr.analysis.TokenizerFactory
能帮我看看为什么不?
运行的时候老报这个错误:
2009-2-18 18:45:06 org.apache.solr.common.SolrException log
严重: java.lang.ClassCastException: com.*.se.analyzer.ChineseTokenizerFactory cannot be cast to org.apache.solr.analysis.TokenizerFactory
能帮我看看为什么不?
发表评论
-
Nutch1.0开源搜索引擎与Paoding在eclipse中用plugin方式集成(终极篇)
2009-09-14 13:15 4334本文主要描述的是如何将paoding分词用plugi ... -
Nutch1.0的那些事
2009-09-10 12:37 2196很久没有更新博客了,应该快一年了。现在呢,我把去年 ... -
配置linux服务器之间ssh不用密码访问
2008-11-05 13:55 3906在配置nutch的时候,我 ... -
搜索引擎术语
2008-10-15 15:30 2548最近monner兄共享了一篇 ... -
搜索引擎机器人研究报告
2008-10-13 15:35 1932从该文对googlebot的分析看,googlebot似乎是想 ... -
搜索引擎算法研究
2008-10-13 15:11 21211.引言 万维网WWW(World Wide Web ... -
谁说搜索引擎只关注结果-看我viewzi的72变
2008-10-04 20:15 1837搜索引擎给大家的感觉,就是用起来简单,以google为首,一个 ... -
《Lucene+Nutch搜索引擎》看过以后。。。
2008-10-03 23:42 7639研究搜索引擎技术快一 ... -
微软有趣的人物关系搜索引擎——人立方
2008-10-03 20:00 3962最近,微软亚洲研究院 ... -
Nutch开源搜索引擎增量索引recrawl的终极解决办法(续)
2008-09-28 19:30 3476十一要放假了,先祝广大同学们节日快乐! 在之前的一篇文章中, ... -
Nutch:一个灵活可扩展的开源web搜索引擎
2008-09-28 11:46 2267在网上找到一篇于2004年11月由CommerceNet La ... -
Google公司都是些什么牛人?
2008-09-27 17:31 2073Google公司都是些什么牛人? 1 Vi ... -
搜索引擎名人堂之Doug Cutting
2008-09-27 11:41 2640Doug Cutting是一个开源搜索技术的提倡者和创造者。他 ... -
Nutch开源搜索引擎增量索引recrawl的终极解决办法
2008-09-26 19:12 5175本文重点是介绍Nutch开源搜索引擎如何在Hadoop分布式计 ... -
Nutch开源搜索引擎与Paoding中文分词用plugin方式集成
2008-09-26 15:31 4594本文是我在集成中文分词paoding时积累的经验,单独成一篇文 ... -
关于Hadoop的MapReduce纯技术点文章
2008-09-24 18:10 3516本文重点讲述Hadoop的整 ... -
MapReduce-免费午餐还没有结束?
2008-09-24 09:57 1485Map Reduce - the Free Lunch is ... -
搜索引擎名人堂之Jeff Dean
2008-09-22 15:09 14976最近一直在研究Nutch,所以关注到了搜索引擎界的一些名人,以 ... -
Lucene于搜索引擎技术(Analysis包详解)
2008-09-22 14:55 2223Analysis 包分析 ... -
Lucene与搜索引擎技术(Document包详解)
2008-09-22 14:54 1723Document 包分析 理解 ...
相关推荐
在实现这个简单实例的过程中,首先需要集成Paoding和Lucene到你的项目中。安装完成后,你需要创建一个索引器,使用Paoding对输入的文本进行分词,然后用Lucene的API将这些词构建为索引。索引过程通常包括打开读写器...
这篇学习笔记主要关注的是将Lucene 3.0与Paoding搜索引擎进行集成的实践与技术要点。 首先,Lucene是一个高性能、全文检索库,提供了完整的搜索功能,包括索引、查询、排序等。版本3.0是其发展过程中的一个重要里程...
在使用lucene3与paoding集成的时候可能会出现以下错误: Exception in thread "main" java.lang.AbstractMethodError: org.apache.lucene.analysis.TokenStream.incrementToken()Z at org.apache.lucene.index....
3. **分词处理**:理解分词在全文检索中的重要性,以及如何集成Paoding分词器,利用其强大的中文分词功能。 4. **Analyzer使用**:学习如何自定义Analyzer,特别是配置PaodingAnalyzer,以适应中文的特殊性,如词语...
《Lucene与Paoding分词在索引构建中的应用》 Lucene,作为一款开源的全文检索库,被广泛应用于各种信息检索系统中,而Paoding分词则是针对中文进行高效精准分词的工具,两者结合能显著提升中文文本检索的效率和准确...
《深入理解Lucene3.0与Paoding-Analysis集成应用》 在信息检索领域,Apache Lucene是一款强大的全文搜索引擎库,被广泛应用于各种信息检索系统。Lucene3.0是其历史版本之一,具备高效、灵活的特点。在这个版本中,...
在PaodingAnalysis与Lucene的集成过程中,开发者首先需要引入PaodingAnalysis的相关依赖,然后在配置Lucene的Analyzer时选择PaodingAnalyzer。这样,当索引或搜索中文文本时,Paoding分词器就会自动对文本进行分词...
在Lucene 4.8.1中集成Paoding Analysis,首先需要将对应的jar包添加到项目依赖中。这通常可以通过Maven或Gradle来管理,确保Lucene库和Paoding Analysis库的正确引用。在完成库的引入后,我们需要配置Analyzer,指定...
5. **易用性**:Paoding Lucene提供了简洁的API接口,使得开发者可以轻松集成到自己的项目中,降低了使用门槛。 通过对Paoding Lucene的源码学习,开发者可以了解到如何在Lucene的基础上定制适合中文环境的搜索引擎...
paoding可方便地与Lucene、Solr等全文检索引擎集成,提供高性能的中文分词服务。 总结来说,paoding分词是一个强大的中文分词工具,其高效、灵活的特性使得它在众多分词库中脱颖而出。通过理解其工作原理和熟练...
4. “lucene”:这是一个开源全文检索库,表明“Paoding中文分词”可能与Lucene有集成或兼容性,可以用于提高搜索和索引效率。 **压缩包子文件的文件名称列表解析** 1. `analyzer.bat` 和 `analyzer.sh`:这两个...
1. **compass-2.1.0.jar**:Compass 是基于 Lucene 的一个高级搜索引擎框架,提供了与 ORM 框架(如 Hibernate)的集成,使得数据库中的数据可以被全文搜索。 2. **lucene-core.jar**:Lucene 的核心库,包含所有...
通过上述步骤和代码片段的解析,我们了解了如何在实际应用中利用 Lucene 和 Paoding 来处理中文分词和搜索,以及它们与数据库之间的集成方法。这为开发一个完整的中文全文搜索系统提供了重要的参考。
《深入剖析:Lucene3与庖丁解牛中文分词器》 在信息技术飞速发展的今天,全文检索和搜索引擎已经成为日常开发中不可或缺的部分。Lucene作为一款强大的全文检索库,被广泛应用于各种信息检索系统中。然而,对于中文...
在 "paoding-analysis3.0_for_lucene-core-3.3" 这个压缩包中,包含了 Paoding 分词器的特定版本,确保与 Lucene 3.3.0 版本兼容。 Paoding Analysis 的特点主要包括: 1. **高性能**:采用了高效的分词算法,使得...
PaoDing Analysis是一个针对这一问题的专业解决方案,它对Lucene进行了深度封装,为用户提供了一套强大的中文分词工具。在本文中,我们将详细探讨PaoDing Analysis 2.0.4-alpha2的主要特性和使用方法。 首先,让...
这些分词器在Lucene框架下工作,能够无缝集成到全文检索和信息提取的系统中。通过对比测试,可以观察不同分词器在处理同一段落时的分词效果和执行效率,从而选择最适合项目需求的分词工具。对于开发者来说,理解这些...
5. **扩展性强**:支持多种Lucene版本,易于与其他系统集成。 具体使用"paoding-analysis-2.0.4-alpha2"时,开发者需要将其引入项目,然后在Lucene的索引创建和查询过程中,指定使用这个分词器。通过设置Analyzer,...
庖丁分词是一款知名的中文分词工具,专为...总之,这个压缩包提供了一个深入了解中文分词技术,特别是如何与Lucene集成的宝贵资源。无论是为了学习还是实际项目开发,深入研究庖丁分词的源代码都将带来丰富的收获。