不过 在 nutch-default.xml中间可以通过调整 searcher.summary.context 和 searcher.summary.length
- 浏览: 963198 次
- 性别:
- 来自: 北京
-
文章分类
- 全部博客 (385)
- 搜索引擎学习 (62)
- 算法 (1)
- 数据库 (15)
- web开发 (38)
- solr开发 (17)
- nutch 1.2 系统学习 (8)
- cms (1)
- 系统架构 (11)
- linux 与 unix 编程 (16)
- android (15)
- maven (1)
- 关注物流 (1)
- 网址收集 (1)
- 分布式,集群 (1)
- mysql (5)
- apache (1)
- 资料文档备份 (7)
- 上班有感 (0)
- 工作流 (15)
- javascript (1)
- weblogic (1)
- eclipse 集成 (1)
- JMS (7)
- Hibernate (1)
- 性能测试 (1)
- spring (6)
- 缓存cache (1)
- mongodb (2)
- webservice (1)
- HTML5 COCOS2D-HTML5 (1)
- BrowserQuest (2)
最新评论
-
avi9111:
内陷到android, ios, winphone里面也是随便 ...
【HTML5游戏开发】二次开发 BrowserQuest 第一集 -
avi9111:
呵呵,做不下去了吧,没有第二集了吧,游戏是个深坑,谨慎进入,其 ...
【HTML5游戏开发】二次开发 BrowserQuest 第一集 -
excaliburace:
方案3亲测完全可用,顺便解决了我其他方面的一些疑问,非常感谢
spring security 2添加用户验证码 -
yuanliangding:
Spring太强大了。
Spring Data JPA 简单介绍 -
小高你好:
什么是hibernate懒加载?什么时候用懒加载?为什么要用懒加载?
高亮显示比较简单,网上也有很多介绍代码。修改如下:
将 org.apache.nutch.searcher.Summary 第 54行 代码 修改为:
public String toString() { return "<span style='color:red'>" + super.toString() + "</span>"; }
增加索引长度花了我比较长的时间 , 不过后来发现原来有两个参数是专门调整索引长度的 ,刚看代码的时候没有注意到 ,在org.apache.nutch.searcher.Summarizer 的36行左右 有
/** The number of context terms to display preceding and following matches.*/
private static final int SUM_CONTEXT =
NutchConf.get().getInt("searcher.summary.context", 5);
/** The total number of terms to display in a summary.*/
private static final int SUM_LENGTH =
NutchConf.get().getInt("searcher.summary.length", 100);
这 两个 是 Term 的长度 , 第一个参数是 SUM_CONTEXT 在摘要中间最多有 5个 高亮显示的关键词(注:这里的NutchConf.get().getInt()第二个参数 5表示 默认值是5,也就是在取得searcher.summary.context为NULL时候给一个默认值),
第二个SUM_LENGTH 是在摘要中最多显示 100个 Term ,这个Term 是分词得到的结果 ,在后面的摘要截取算法中需要用到 Term ,不过可以通过Luncene 的保存Term的坐标 来实现 索引关键词的快速高亮显示 ,这样的好处是可以在查询的时候不再使用分词,以减少查询相应时间。
不过如果分词系统是基于词库的,则词库增长以后会有一定问题,这个以后在做专题讨论。
下面帖一下改过的算法内容,显示文字数大约在 150个左右 ,如果需要增加到更多 ,则可以修改 相应的代码。
public Summary getSummary(String text, Query query) throws IOException ...{
// Simplistic implementation. Finds the first fragments in the document
// containing any query terms.
//
// TODO: check that phrases in the query are matched in the fragment
Token[] tokens = getTokens(text); // parse text to token array
if (tokens.length == 0)
return new Summary();
String[] terms = query.getTerms();
HashSet highlight = new HashSet(); // put query terms in table
for (int i = 0; i < terms.length; i++)
highlight.add(terms[i]);
//
// Create a SortedSet that ranks excerpts according to
// how many query terms are present. An excerpt is
// a Vector full of Fragments and Highlights
//
SortedSet excerptSet = new TreeSet(new Comparator() ...{
public int compare(Object o1, Object o2) ...{
Excerpt excerpt1 = (Excerpt) o1;
Excerpt excerpt2 = (Excerpt) o2;
if (excerpt1 == null && excerpt2 != null) ...{
return -1;
} else if (excerpt1 != null && excerpt2 == null) ...{
return 1;
} else if (excerpt1 == null && excerpt2 == null) ...{
return 0;
}

int numToks1 = excerpt1.numUniqueTokens();
int numToks2 = excerpt2.numUniqueTokens();
if (numToks1 < numToks2) ...{
return -1;
} else if (numToks1 == numToks2) ...{
return excerpt1.numFragments() - excerpt2.numFragments();
} else ...{






























if (i != 0) ...{












































































































// Don't add fragments if it takes us over the max-limit
if ((int)(tokenCount + tokenFraction) <= SUM_LENGTH) ...{
s.add(f);
}
tokenCount += tokenFraction;
}




return s;
}
不过 在 nutch-default.xml中间可以通过调整 searcher.summary.context 和 searcher.summary.length
org.apache.nutch.analysis.NutchAnalysis
文件final public Query parse() throws ParseException 方法
的85行左右,修改为:
org.apache.lucene.analysis.TokenStream tokenizer = new com.xdtech.
util.lucene.XDChineseTokenizer(input);
发表评论
-
nutch1.4 环境变量设置
2012-04-06 12:52 1740Exception in thread "main& ... -
正则使用
2010-06-18 00:19 1158java正则表达式(java.Regex)HtmlParser ... -
nutch 1.0 读源码,过滤掉不正确的URL实现方法
2010-06-18 00:17 3417nutch 1.0 读源码,过滤掉不正确的URL实现方法: ... -
Exception in thread "main" org.apache.hadoop.mapred.InvalidInputExnutch新发现,为以后备忘
2010-06-16 23:16 2303urls -dir mycrawl -depth 3 -top ... -
HTMLParser 解析html字符串,提取纯文本
2010-05-14 09:59 8334今天在群里问别人怎么提取文本,也没有具体告诉我用什么,只是说用 ... -
HTMLParser的两种使用方法[转]
2010-05-13 23:37 1959HTMLParser的两种使用方法 文章分类:Java编程 ... -
搜索引擎术语
2010-05-05 11:40 1443附录. 术语 B: 半结构化 ... -
影响Lucene索引速度原因以及提高索引速度技巧[转]
2010-04-25 00:11 2750影响Lucene索引速度原因以及提高索引速度技巧 关键字: ... -
如何配置compass的索引位置为相对路径
2009-09-01 19:28 1512Compass是对lucene进行封装 ... -
heritrix 基本介绍
2009-08-01 10:35 3924Heritrix使用小结 1. H ... -
我对HtmlParser 提取网页各属性的总结及示例说明
2009-07-08 13:50 1950/** * 属性过滤器 * @param parser ... -
数学之美 系列十三 信息指纹及其应用
2009-06-25 22:34 10462006年8月3日 上午 11:17:00 ... -
数学之美系列二十一 - 布隆过滤器(Bloom Filter)
2009-06-25 22:27 15212007年7月3日 上午 09:35:00 ... -
用HTMLParser提取URL页面超链接的一段代码(小试牛刀)
2009-06-06 16:54 7101用HTMLParser提取URL页面超 ... -
深入学习Heritrix---解析处理器(Processor)
2009-06-06 13:17 1635键字: heritrix processor 本节解析与 ... -
深入学习Heritrix---解析Frontier(链接工厂)
2009-06-06 10:02 1228Frontier是Heritrix最核心的组成部分之一,也是最 ... -
深入学习Heritrix---解析CrawlController
2009-06-06 10:00 1392当我们以Web UI方式使用Heritrix时,点击任务开始( ... -
深入学习Heritrix---解析Frontier(链接工厂)
2009-06-03 21:50 1526原创作者: pengranxiang 阅读:231次 ... -
lucene2.0+heritrix示例补充
2009-06-03 21:31 1554由于lucene2.0+heritrix一书示例用的网站( ... -
htmlparser 使用手册
2009-05-30 16:47 29312009-05-08 14:20 需要做一 ...
相关推荐
Nutch 是一个开源的搜索引擎项目,它提供了网络爬虫、索引和搜索的功能。在构建一个自定义的搜索引擎时,可能会遇到几个常见的问题,如搜索结果的关键词高亮、快照链接无效以及网页在预览时的变形。下面将详细讨论...
《开源企业搜索引擎Solr的应用教程》 在当今信息爆炸的时代,高效、精准的搜索成为企业的核心竞争力之一。开源的企业搜索引擎Solr,凭借其强大的功能和灵活性,成为了许多组织的首选解决方案。本教程将深入探讨Solr...
最后,Apache Solr是基于Lucene的全文搜索引擎,用于建立高效的索引和查询服务。Nutch抓取并清洗的数据会被导入到Solr中,创建索引,使得我们可以快速搜索到目标信息。Solr支持复杂查询语法,可以实现精确匹配、模糊...
- “lucene”和“solr”分别代表了两个开源搜索平台:Apache Lucene和Apache Solr。 #### 内容概述 - **内容概览**: - **第1章 了解搜索引擎** - 介绍了搜索引擎的基本概念、Google的发展历程以及如何构建自己...
分析器在两者之间起着桥梁作用,它将用户的输入分解为有意义的词汇单元,以便于索引和搜索。 2. **索引过程** 在Lucene 8.2中,索引过程包括文档的读取、分析、字段处理和倒排索引构建。倒排索引是Lucene的核心...
它的创始人Doug Cutting也是著名搜索引擎Nutch和大数据框架Hadoop的创始人,目前在云计算公司CLOUDERA任职。 【Lucene应用详解】 在Lucene中,实现全文搜索涉及到以下几个关键概念: 1. **Document**:是Lucene中...
它提供了一个高效、可扩展的基础架构,用于索引和搜索大量文本数据。本篇文章将从源码和工具的角度,深度解析Lucene的相关知识点。 1. **Lucene的基本概念** - **全文检索**:Lucene的核心功能是实现对文本数据的...
此外,书中还探讨了Lucene的Perl、Python、C#、.Net和C++的移植版本,并介绍了排序、过滤、项向量特性以及对多索引和远程索引的搜索操作。针对新引入的SpanQuery特性、扩展的查询解析器以及命中结果集等功能也进行了...
在这个解决方案中,Solr是核心的搜索引擎,负责对抓取的数据进行分析、索引和快速检索,为用户提供精准的搜索结果。 5. **Rails**:Rails是一个用Ruby语言编写的Web开发框架,强调“约定优于配置”和“DRY(Don't ...
在YouSeer中,Solr被用作索引系统,负责对抓取的网页内容进行高效地索引和存储,支持复杂的查询操作和丰富的搜索特性,如近似搜索、拼写纠错、高亮显示等。 二、YouSeer的架构与工作流程 YouSeer的工作流程通常...
- 本章详细介绍了构建搜索引擎所需的技术栈和关键组件,包括网络爬虫、全文索引构建以及用户界面设计等方面。 #### 三、数据获取技术 **3.1 自己的网络蜘蛛** - **3.1.1 BerkeleyDB介绍** - 是一种嵌入式数据库...
- **定义**:Lucene 是一个基于 Java 的全文检索工具包,它可以为应用程序提供索引和搜索功能。 - **应用案例**:Lucene 被广泛应用于各种软件系统中,如 Eclipse 帮助系统的搜索功能。 - **与 Solr 的关系**:虽然 ...
- **Nutch**: 是一个开源网络爬虫,结合了Lucene用于网页抓取和索引。 ### 5. 学习资源 - 官方文档: Apache Lucene的官方文档是学习Lucene的好起点。 - "Lucene in Action"书籍: 一本深入介绍Lucene的书籍,适合...
**Solr** 是一个高度可扩展、高性能的开源搜索引擎平台,它基于 **Lucene** 构建而成,由 **Apache Software Foundation** 开发和维护。Solr 提供了一系列强大的功能,使其成为企业级搜索解决方案的理想选择。 1. *...