- 浏览: 158620 次
- 性别:
- 来自: 北京
最新评论
-
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 4297本文主要描述的是如何将paoding分词用plugi ... -
Nutch1.0的那些事
2009-09-10 12:37 2167很久没有更新博客了,应该快一年了。现在呢,我把去年 ... -
配置linux服务器之间ssh不用密码访问
2008-11-05 13:55 3890在配置nutch的时候,我 ... -
搜索引擎术语
2008-10-15 15:30 2518最近monner兄共享了一篇 ... -
搜索引擎机器人研究报告
2008-10-13 15:35 1910从该文对googlebot的分析看,googlebot似乎是想 ... -
搜索引擎算法研究
2008-10-13 15:11 21021.引言 万维网WWW(World Wide Web ... -
谁说搜索引擎只关注结果-看我viewzi的72变
2008-10-04 20:15 1811搜索引擎给大家的感觉,就是用起来简单,以google为首,一个 ... -
《Lucene+Nutch搜索引擎》看过以后。。。
2008-10-03 23:42 7612研究搜索引擎技术快一 ... -
微软有趣的人物关系搜索引擎——人立方
2008-10-03 20:00 3913最近,微软亚洲研究院 ... -
Nutch开源搜索引擎增量索引recrawl的终极解决办法(续)
2008-09-28 19:30 3457十一要放假了,先祝广大同学们节日快乐! 在之前的一篇文章中, ... -
Nutch:一个灵活可扩展的开源web搜索引擎
2008-09-28 11:46 2235在网上找到一篇于2004年11月由CommerceNet La ... -
Google公司都是些什么牛人?
2008-09-27 17:31 2033Google公司都是些什么牛人? 1 Vi ... -
搜索引擎名人堂之Doug Cutting
2008-09-27 11:41 2610Doug Cutting是一个开源搜索技术的提倡者和创造者。他 ... -
Nutch开源搜索引擎增量索引recrawl的终极解决办法
2008-09-26 19:12 5149本文重点是介绍Nutch开源搜索引擎如何在Hadoop分布式计 ... -
Nutch开源搜索引擎与Paoding中文分词用plugin方式集成
2008-09-26 15:31 4578本文是我在集成中文分词paoding时积累的经验,单独成一篇文 ... -
关于Hadoop的MapReduce纯技术点文章
2008-09-24 18:10 3482本文重点讲述Hadoop的整 ... -
MapReduce-免费午餐还没有结束?
2008-09-24 09:57 1467Map Reduce - the Free Lunch is ... -
搜索引擎名人堂之Jeff Dean
2008-09-22 15:09 14924最近一直在研究Nutch,所以关注到了搜索引擎界的一些名人,以 ... -
Lucene于搜索引擎技术(Analysis包详解)
2008-09-22 14:55 2196Analysis 包分析 ... -
Lucene与搜索引擎技术(Document包详解)
2008-09-22 14:54 1698Document 包分析 理解 ...
相关推荐
在使用lucene3与paoding集成的时候可能会出现以下错误: Exception in thread "main" java.lang.AbstractMethodError: org.apache.lucene.analysis.TokenStream.incrementToken()Z at org.apache.lucene.index....
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
基于EJB的真实世界模型,附源代码,部分功能需JSP配合完成。 J2ME优化压缩PNG文件 4个目标文件 内容索引:JAVA源码,综合应用,J2me游戏,PNG,图形处理 这是个J2ME控制台程序,它能剔除PNG文件中的非关键数据段,...
基于EJB的真实世界模型,附源代码,部分功能需JSP配合完成。 J2ME优化压缩PNG文件 4个目标文件 内容索引:JAVA源码,综合应用,J2me游戏,PNG,图形处理 这是个J2ME控制台程序,它能剔除PNG文件中的非关键数据段,...