- 浏览: 152279 次
- 性别:
- 来自: 北京
-
文章分类
- 全部博客 (69)
- Maven (1)
- lucene (22)
- bobo zoie (6)
- eclipse (5)
- Nexus (1)
- Git (1)
- trac (1)
- RMI (2)
- svn (0)
- Protocol buffer (0)
- sensei (6)
- JMX (2)
- Faceted search (1)
- Linux (1)
- Cassandra (1)
- Zookeeper (3)
- zoie (1)
- jmap (1)
- mongodb (2)
- 百度百科 (2)
- 词库 (2)
- 抓取 (2)
- IndexTank (1)
- LinkedIn (4)
- norbert (3)
- 分布式 (2)
- senseidb (2)
- Thrift (1)
- scala (1)
- 搜索引擎 (1)
- 质量 (1)
- Nosql (1)
- Jaccard (1)
- Mahout (1)
最新评论
-
bluky999:
@Mark
怎样量化评价搜索引擎的结果质量 -
baso4233:
非常感谢,我跑通了。途中出现了,java.lang.Unsup ...
norbert 高并发分布式服务例子 examples (二) -
yangsong158:
rabbit9898 写道xiansuanla 写道我运行 m ...
JMX 入门例子 -
rabbit9898:
xiansuanla 写道我运行 main方法以后 cmd 里 ...
JMX 入门例子 -
xiansuanla:
我运行 main方法以后 cmd 里面运行 jconsole ...
JMX 入门例子
转载:
Token: 如果一个字段被token化,这表示它经过了一个可将内容转化为tokens串的分析程序。 Token是建立索引的基本单位,表示每个被编入索引的字符。 在token化的过程中,分析程序会在使用任何转换逻辑(例如去掉 "a” 或 "the" 这类停用词,执行词干搜寻,将无大小写区分的所有文字转换成小写等)的同时,抽取应被编入索引的文本内容。由于和字段相关的内容减少到只剩核心元素,因此,索引作为与某个字段相关的文字内容,它的规模也被缩小了。只有被token化的字段也将被编入索引的情况下才有意义。 对Akamai.com来说,“标题”被token化,所以Lucene不用搜寻如 "a" 或 "the" 这类单词。
public final class Token { String termText; // the text of the term int startOffset; // start in source text int endOffset; // end in source text String type = "word"; // lexical type private int positionIncrement = 1; public Token(String text, int start, int end) public Token(String text, int start, int end, String typ) public void setPositionIncrement(int positionIncrement) public int getPositionIncrement() { return positionIncrement; } public final String termText() { return termText; } public final int startOffset() { return startOffset; } public void setStartOffset(int givenStartOffset) public final int endOffset() { return endOffset; } public void setEndOffset(int givenEndOffset) public final String type() { return type; } public String toString() }
TokenStream是用来走访Token的iterator(迭代器)
public abstract class TokenStream { public abstract Token next() throws IOException; public void close() throws IOException {} }
Tokenizer继承自TokenStream,其输入为Reader
public abstract class Tokenizer extends TokenStream { protected Reader input; protected Tokenizer() {} protected Tokenizer(Reader input) { this.input = input; } public void close() throws IOException { input.close(); } }
TokenFilter继承自TokenStream,其作用是用来完成对TokenStream的过滤操作,譬如
去StopWords,将Token变为小写等。
public abstract class TokenFilter extends TokenStream { protected TokenStream input; protected TokenFilter() {} protected TokenFilter(TokenStream input) { this.input = input; } public void close() throws IOException { input.close(); } }
Analyzer就是一个TokenStream工厂
public abstract class Analyzer { public TokenStream tokenStream(String fieldName, Reader reader){ return tokenStream(reader); } public TokenStream tokenStream(Reader reader){ return tokenStream(null, reader); } }
发表评论
-
基于sensei+lucene的分布式搜索终于上线了-2012-12-08
2011-12-08 13:26 1663基于sensei+lucene的分布式搜索终于上线了 ... -
[转载] sensei分布式实时搜索系统源码解析(二) 分布式Search的流程
2011-07-22 14:57 1501看来自己很懒,发现前同事的sensei 研究了 转载: ht ... -
[转载] sensei分布式实时搜索系统源码解析(一) senseiServer的启动及若干概念
2011-07-22 14:55 1820看来自己很懒,发现前同事的sensei 研究了 转载:htt ... -
lucene分布式搜索sensei的使用及完善
2011-07-22 14:32 3585原创文章,转载请注明 ... -
转载:几种常见的基于Lucene的开源搜索解决方案对比
2011-04-06 14:38 1347一 直接使用 Lucene ( http://lucene ... -
转载: Apache Zookeeper入门1
2011-04-06 14:36 1913源: http://www.javabloger.com/ar ... -
转载:Lucene查询语法详解
2011-04-02 10:33 1131英文原文地址:http: ... -
各种字符串Hash函数比较
2011-02-12 14:54 4146Java自带的字符串hash函数: public ... -
Lucene MoreLikeThisQuery 例子 备注
2011-01-06 11:22 14761。 编码问题: MoreLikeThisQuery中的 ... -
Lucene MoreLikeThisQuery 例子
2011-01-04 13:42 2861要做一个跟文章标题相关的新闻,本来想简单做一下,就是把标 ... -
lucene 3.0 分词例子 转载
2010-12-27 17:30 1966源:http://hxraid.iteye.com/blog ... -
lucene基本概念
2010-12-03 15:51 1186一、lucene索引的建立 1 ... -
[转载] lucene使用与优化
2010-12-03 10:14 1069源:http://www.cnblogs.com/bysshi ... -
[转载] 几种常见的基于Lucene的开源搜索解决方案对比
2010-12-02 16:07 922源:http://blog.fulin.org/201 ... -
Lucene3.0的几种分词系统
2010-11-17 17:25 13161、 StopAnalyzer StopAnalyze ... -
当前几个主要的Lucene中文分词器的比较
2010-11-17 12:35 13391. 基本介绍: paoding :Lucene中 ... -
lucene score explain 评分解释说明
2010-11-16 17:29 2298通过Searcher.explain(Query qu ... -
lucene 排序 (Sort SortField 构造函数)
2010-11-09 13:58 4148注意: 在lucene2.9中,排序的字段域必须inde ... -
lucene 2010 大会资料 Lucene Revolution 2010
2010-10-27 15:41 1002lucene 2010 大会资料资料下载 http://ww ... -
bobo-browse 的分组统计(Faceted Search)
2010-10-25 16:43 2712基于lucene的bobo-browse 的分组统计(Face ...
相关推荐
在 Lucene 中,Analyzer 是核心组件之一,它的作用是对输入的原始文本进行预处理,将其转换成一系列的“语汇单元”(Tokens),这些语汇单元通常代表了文档中的关键词。Analyzer 的工作流程大致如下: 1. 首先,...
在Lucene中,索引包含了一系列经过分析和分词处理的文档,这些处理由Analyzer负责。Analyzer会将输入文本分解为Token,并且可以进行诸如去除停用词、词形还原等预处理操作,以提高搜索效率和准确性。 搜索过程中,...
1. 分词原理:了解Analyzer的工作流程,包括TokenStream、Tokenizer和Token的交互。 2. 索引构建:研究IndexWriter的使用,以及Segment和Merge策略。 3. 查询解析:探究QueryParser如何将查询字符串转化为Query对象...
- `Analyzer`: 分析器,负责将输入文本转换为Token流,包括分词、去停用词、词形还原等。 - `Tokenizer`: 生成Token的基本单元,根据语言规则将文本切割。 - `TokenFilter`: 对Token流进行进一步处理的过滤器,例如...
1. 分词器(Tokenizer):分词器是Lucene处理文本的第一步,负责将输入的字符串分解为一系列的词元(Token)。Lucene.Net包含多种预定义的分词器,如StandardAnalyzer用于英文,而ChineseAnalyzer适用于中文。 2. ...
在Lucene中,`Attribute`接口定义了一种方式来扩展Lucene的分析器(Analyzer)和TokenStream(分词流),而`TermAttribute`则实现了`Attribute`接口,专门用于表示一个分词(Term)。这个接口提供了对分词的基本属性...
例如,`Analyzer`类负责文本分析,其中的`TokenStream`接口和`Tokenizer`类是实现自定义分词策略的关键。`InvertedIndex`类则实现了倒排索引的构建和查询。 至于“工具”标签,Lucene作为一个工具库,可以与其他...
在Clucene的源码中,我们可以看到这些组件的具体实现,例如`TokenStream`接口定义了分词流的行为,`Analyzer`类负责整个分词过程,`IndexWriter`类处理索引的建立和更新,`IndexReader`用于读取索引,`QueryParser`...