IR
文章平均质量分 76
todaylxp
平台:windows/linux
语言:C/C++ /java/python
兴趣领域:
1.信息检索
2.模式识别
3.自然语言处理
4.分布式计算
职业:
搜索引擎研发工程师
展开
-
linux编译 clucene
现在的目标是在linux下架设搜索服务器。初始当然还是从自己熟悉的clucene入手,学习linux编程菜一个的起点。 检查1. ./autogen.sh2. ./configure3.cd src4.make monolithic5.cd ../test6.make monolithic7../cl_test_monolithic 运行索引和检索程原创 2009-02-16 23:07:00 · 1793 阅读 · 1 评论 -
lucene-2.9.0 索引过程(三) 过程简述
索引过程IndexWriter.addDocument(Document) line: 2428 IndexWriter.addDocument(Document, Analyzer) line: 2454DocumentsWriter.addDocument(Document, Analyzer) line: 750DocumentsWriter.updateDocument(Document原创 2009-10-30 15:00:00 · 2023 阅读 · 0 评论 -
lucene-2.9.0 索引过程(二) FreqProxTermsWriter
FreqProxTermsWriter类一 类功能将内存中的索引写入相应的索引文件(tis/tii/frq/prx)二、成员函数2.1 createPostings函数TermsHashPerThread::morePostings()会使用FreqProxTermsWriter::createPostings申请更多的Postings内存,不过只是调用此函数,并非有缓冲的原创 2009-10-28 15:02:00 · 2591 阅读 · 0 评论 -
lucene-2.9.0 数值类型的索引和检索分析
主要涉及几个类 NumericRangeQuery 数值型检索类,含(NumericRangeTermEnum)数值型词项迭代器NumericUtils 索引和检索时,数值型运算类NumericTokenStream 索引时解析数值型字段的类NumericField 一、核心函数1.1 数值转换函数原创 2009-11-05 11:51:00 · 3151 阅读 · 0 评论 -
clucene的位置信息
clucene可以通过TermDocs(SegmentTermDocs)和TermPositions(SegmentTermPositions)的文档信息和位置信息. 可以用此些类自己做高亮 void FindTermPosition( IndexReader* pReader, IndexSearcher* pSearcher, TCHAR* txt , T原创 2009-11-04 09:50:00 · 2164 阅读 · 0 评论 -
lucene-2.9.0 索引过程(一) TermsHashPerField
TermsHashPerField 类 一、类功能概述:负责词项的索引过程,每个字段有相应的一个TermsHashPerField;当索引某字段词项时,使用对应TermsHashPerField的add()函数完成(一个)词项索引过程,并将索引内容(词项字符串/指针信息/位置信息等)存储于内存缓冲中 二、类成员说明: 2.1 final int streamCount;原创 2009-10-25 16:17:00 · 3260 阅读 · 0 评论 -
lucene-2.9.0发布新版
本次发布的Lucene 2.9.0仍然兼容早期Lucene版本,并重构了大量API,在很多功能上进行了增强: Lucene 2.9.0增加了分段搜索和缓存 Lucene 2.9.0在IndexWriter中加入了接近实时搜索的能力。 Lucene 2.9.0引入了新的Query类型 Lucene 2.9.0引入了更加智能和灵活的多词期查询(通配符查询和范围查询) Lucene 2.9.0引入了新的原创 2009-10-25 16:09:00 · 2186 阅读 · 0 评论 -
firtex的phrasequery问题
在firtex大家反映说phrasequery无效。所以跟踪了一下。不知道是不是我的版本有问题,从代码来看Query* q = QueryParser::parse(line,field,pAnalyzer,false);是不可能解析为PhraseQuery.因为都解析为布尔查询了(或者词项查询)Query* QueryParser::getFieldQuery(const tstring原创 2009-09-04 17:42:00 · 2267 阅读 · 0 评论 -
lucene的fuzzyquery和wildcardquery
1.fuzzyquery用编辑距离度量俩词项的相似度将所有相似的词项填充成布尔查询(或) 取所有相同前缀(前缀长度可以设定)的词项做编辑距离 2.wildcardquery lucene的wildcardquery是这样的:例如查询"华南*大学"首先根据匹配字符"*"获取前缀"华南"依旧是遍历所有前缀为"华南"的词项比较之,满足条件的填充为布尔查询(或)原创 2009-09-03 16:24:00 · 10278 阅读 · 0 评论 -
浅谈lucene的正向文档
由两个文件组成正向文档信息1. 正向文档指针(.fdx文件)2. 正向文档内容(.fdt文件) 正向文档的索引过程l 涉及两个类1. FieldInfos *fieldInfos;(字段信息:例如字段名,字段属性等)2. FieldsWriter *fieldsWriter;(正向文档读写器) l 索引过程分两部分原创 2009-06-24 20:52:00 · 902 阅读 · 0 评论 -
sphinx简析
CSphSource 数据源CSphSource_XMLPipe2-XML文件获取数据CSphSource_SQL-SQL(MySQL)获取数据 CSphIndex 索引器派生类CSphIndex_VLN// 索引过程virtual int Build ( CSphDict * pDict, const CSphVector & dSources, // 所有原创 2009-06-15 00:06:00 · 3639 阅读 · 3 评论 -
lucene文档编号的实验
lucene文档编号是内部定义的。每个段内是按0....N一直累加取值(按文档添加顺序分配),当段与段之间合并,那么当前段的文档编号会加上偏移值(在上一个段的基础上,比如原0...M,加上偏移为N+1....M+N); 我在用Lucene的时候有一个问题,我从数据库取数据,我和前台的约定就是基于数据库ID值的,也就是我检索的结果返回的是数据库ID而不是lucene的ID(前台才不知道L原创 2009-06-14 23:50:00 · 1678 阅读 · 1 评论 -
编辑距离
1.FuzzyQuery Lucene的FuzzyQuery是将词典中所有与查询串相似的构建BooleanQuery如何评估查询串和词典词项的相似性呢? 使用的是编辑距离(Edit distance 又名Levenshtein distance) 2.Levenshtein distance搞自然语言处理的应该不会对这个概念感到陌生,编辑距离就是用来计算从原串(s)原创 2009-06-08 23:25:00 · 1033 阅读 · 0 评论 -
lucene索引笔记
一、一个文档添加 1. 添加一个新的document即是新加一个segment,段名是通过下划线和数字组成(段数),(如果每次加入文档都要做字段信息的统计和写磁盘,浪费,因为所有的文档拥有相同的字段和属性) 并将段信息写入fnm文件 文件结构:1. 字段数2. 段名字符串长度3. 段名字符串值4.原创 2009-06-04 14:23:00 · 681 阅读 · 0 评论 -
Firtex的一个小bug
症状:索引如有字段无(一)数据,索引过程异常 原因:如该字段有数据,在索引中会生成norm文件_b.nm文件,b为索引桶序号,m为字段序号 合并过程中会打开该文件,写入临时文件_mid_0_0.nm(m为字段序号) 由于索引过程中自始至终无数据加入该字段,索引该_b.nm文件不存在,打开失败导致异常 代码段如下: name = pEn原创 2009-07-13 14:38:00 · 2028 阅读 · 0 评论 -
Firtex索引过程
一、 IndexWriter分配了存储100个文档的缓冲(每个文档又分配了存储字段的缓冲)此过程在void IndexWriter::defineSchema()函数中完成; 此函数的包括过程:分配可存储100个文档的缓冲…m_ppCachedDocs = new FX_NS(document)::Document*[m_nNumCachedDocs];// m_原创 2009-03-30 00:38:00 · 2859 阅读 · 0 评论 -
lucene-2.9.0 索引过程(四) 合并过程
lucene-2.9.0此版本使用的是对数合并策略此前颁布的lucene是通过ducument的数量来驱动索引的合并的使用策略为立即合并策略例如合并因为mergeFactor1.如果满足内存中的文档数为mergeFactor则触发内存索引写入磁盘 新增的segment文档数为mergeFactor2.初始合并数为mergeDocs = mergeFactor3.如果磁盘中有mergeF原创 2009-11-18 11:30:00 · 3049 阅读 · 0 评论