自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 lucene-2.9.0 索引过程(四) 合并过程

 lucene-2.9.0此版本使用的是对数合并策略此前颁布的lucene是通过ducument的数量来驱动索引的合并的使用策略为立即合并策略例如合并因为mergeFactor1.如果满足内存中的文档数为mergeFactor则触发内存索引写入磁盘  新增的segment文档数为mergeFactor2.初始合并数为mergeDocs = mergeFactor3.如果磁盘中有mergeF

2009-11-18 11:30:00 3044

原创 lucene-2.9.0 数值类型的索引和检索分析

主要涉及几个类 NumericRangeQuery  数值型检索类,含(NumericRangeTermEnum)数值型词项迭代器NumericUtils               索引和检索时,数值型运算类NumericTokenStream 索引时解析数值型字段的类NumericField                  一、核心函数1.1 数值转换函数

2009-11-05 11:51:00 3151

原创 clucene的位置信息

 clucene可以通过TermDocs(SegmentTermDocs)和TermPositions(SegmentTermPositions)的文档信息和位置信息. 可以用此些类自己做高亮  void FindTermPosition( IndexReader* pReader, IndexSearcher* pSearcher,        TCHAR* txt , T

2009-11-04 09:50:00 2159

原创 clucene的highlighter

 clucene做高亮也有相应的highlighter包。 cppunit测试样例中有各种搜索的高亮,包括短语、模糊、范围等查询类型  //testSimpleHighlighter(); //testGetBestFragmentsSimpleQuery(); //testGetFuzzyFragments();  //testGetWildCardFragments(); //

2009-11-04 09:41:00 2444 1

转载 linux CentOS 5.3 yum源配置过程详解

原文见 http://hi.baidu.com/dilijia1002/blog/item/405d8e19407cdc73dab4bd18.html  1.以root用户进入CentOS系统。[root@xuxy ~]# cd /etc/yum.repos.d2.备份repo[root@xuxy yum.repos.d]# mv CentOS-Base.repo CentOS-B

2009-11-04 09:39:00 2515

原创 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 2020

原创 lucene-2.9.0 索引过程(二) FreqProxTermsWriter

FreqProxTermsWriter类一 类功能将内存中的索引写入相应的索引文件(tis/tii/frq/prx)二、成员函数2.1 createPostings函数TermsHashPerThread::morePostings()会使用FreqProxTermsWriter::createPostings申请更多的Postings内存,不过只是调用此函数,并非有缓冲的

2009-10-28 15:02:00 2586

原创 lucene-2.9.0 索引过程(一) TermsHashPerField

TermsHashPerField 类 一、类功能概述:负责词项的索引过程,每个字段有相应的一个TermsHashPerField;当索引某字段词项时,使用对应TermsHashPerField的add()函数完成(一个)词项索引过程,并将索引内容(词项字符串/指针信息/位置信息等)存储于内存缓冲中 二、类成员说明: 2.1 final int streamCount;

2009-10-25 16:17:00 3228

原创 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 2176

原创 CRF+Windows+Unicode

把CRF模块移植至Windows下,并修改成Unicode模式1.修改成Windows下不难,而且所幸nlpbamboo所用linux特有函数不多,   例如mmap   本想共享,不过nlpbamboo的那位大大一直联系不上,罢了。2.unicode    linux下用的是utf-8处理汉字,windows下非unicode是用gb2312   折腾了一会,训练词典

2009-09-22 14:01:00 2377 2

原创 linux动态库的调试

常规做法的用gdb调试      1)文件列表:   [root@localhost libketama]# ls -l总计 200-rw-r--r-- 1 1000 1000 12659 09-09 12:33 ketama.c-rw-r--r-- 1 1000 1000 12653 09-09 12:04 ketama.c~-rw-r--r-- 1 10

2009-09-11 16:19:00 2753

原创 linux虚拟机安装samba

      我的linux是独立安装的,因为特殊原因不是双系统。所以每次都要切换windows和linux,切换的频繁了就有些不爽了。于是决定在windows下安装linux虚拟机.但是我有超过几个G的papers和几个G的sources需要来回共享,所以需要能比较方便的实现linux和windows之间的文件共享。      下面是一些笔记,原文来自网络       http://hex

2009-09-07 23:26:00 4341

原创 firtex的phrasequery问题

在firtex大家反映说phrasequery无效。所以跟踪了一下。不知道是不是我的版本有问题,从代码来看Query* q = QueryParser::parse(line,field,pAnalyzer,false);是不可能解析为PhraseQuery.因为都解析为布尔查询了(或者词项查询)Query* QueryParser::getFieldQuery(const tstring

2009-09-04 17:42:00 2261

原创 lucene的fuzzyquery和wildcardquery

1.fuzzyquery用编辑距离度量俩词项的相似度将所有相似的词项填充成布尔查询(或) 取所有相同前缀(前缀长度可以设定)的词项做编辑距离 2.wildcardquery lucene的wildcardquery是这样的:例如查询"华南*大学"首先根据匹配字符"*"获取前缀"华南"依旧是遍历所有前缀为"华南"的词项比较之,满足条件的填充为布尔查询(或)

2009-09-03 16:24:00 10259

原创 无语的CRF测试

跑了几天才把人民日报的预料训练完,做词性标注的。 随手做了些测试,发现一个很faint的结果 每句测试语句的首个词的词性都被标注为"m"数词 无论实际应该是人名/地名/机构名/名称等等。 由于我的印象中,CRF的记忆力是很强的。 于是看了一下训练的预料, 发现所有预料的第一个词都是类似于"19980101-01-001-001 CN m"的 

2009-09-03 16:00:00 2150

原创 mysql中文插入和查询过程

备注:此字符集设置在LINUX下可行但WINDOWS不可行,应为gb2312mysql下添加表mysql> create table POI ( ID int(6) unsigned zerofill auto_incrementprimary key not null, DISTRICT char(50) character set utf8, TYPE int(6)unsigned z

2009-07-21 20:59:00 3195

原创 Firtex的一个小bug

症状:索引如有字段无(一)数据,索引过程异常 原因:如该字段有数据,在索引中会生成norm文件_b.nm文件,b为索引桶序号,m为字段序号 合并过程中会打开该文件,写入临时文件_mid_0_0.nm(m为字段序号) 由于索引过程中自始至终无数据加入该字段,索引该_b.nm文件不存在,打开失败导致异常  代码段如下:      name = pEn

2009-07-13 14:38:00 2026

转载 mysql操作命令

一、启动mysql服务 (1) rpm方式安装的mysql -设置自动启动 #ntsysv --level 3 -手工启动 #service mysqld start (2) 编译安装的mysql -设置自动启动 #vi /etc/rc.d/rc.local

2009-07-06 23:10:00 1998

原创 linux + mysql笔记

一 安装rpm安装后启动不成功,改用压缩包编译1)建立相应目录和组:# mkdir /usr/local/mysql# groupadd mysql# useradd -g mysql mysql                  //useradd -g mysql -d /usr/local/mysql name2)开始安装mysql# tar xzvf mysql-5.0.22.tar.gz

2009-07-06 22:40:00 5149 1

转载 libketama consistent hash (一致性hash) memcache 客户端

libketama        一致性hash有什么用呢?我们最常用的hash方法是这样的:server = serverlist[hash(key) % serverlist的个数]这样明显有一个缺点:当服务器的个数变化时,所有的hash都将无效,全部得重来一次。一致性hash就是解决这个问题的。大楖的算法:比如:现在有3台服务器:10.0.10.1:1232, 10.0.10.2:1232,

2009-06-30 16:01:00 2250

原创 浅谈lucene的正向文档

由两个文件组成正向文档信息1.      正向文档指针(.fdx文件)2.      正向文档内容(.fdt文件) 正向文档的索引过程l  涉及两个类1.      FieldInfos *fieldInfos;(字段信息:例如字段名,字段属性等)2.      FieldsWriter *fieldsWriter;(正向文档读写器) l  索引过程分两部分

2009-06-24 20:52:00 892

原创 简单的c++题目

class   A      {      WORD   m_a1;      WORD   m_a2;   public:   A(){m_a1=1;m_a2=2;}      void   fun(){printf("%d,%d",m_a1,m_a2);}      }      class   B      {      DWORD   m_a3;      B(){m_a3=3;} 

2009-06-22 10:10:00 594

原创 彻底重构ICTCLAS

彻底重写了ICTCLAS 测试了1000万数据的分词速度,4M/s,此速度不计字符串输入,结果输出;不过此ICTCLAS已经和原有的ICTCLAS彻底不同了-除了utility包外其他都自己重写。unicode编码的分词用了最大正向匹配,否则不可能快的,当消除歧义,未登陆词识别,词性标注时才会使用ICTCALS模块,否则正向一趟扫描即可。另外加了特例表,如果特例表命中,直接

2009-06-18 17:52:00 939

原创 算法题

坐标系从(0,0)点走到(9,9)点,只能向右或者向上走,其中有些点不能走,问有多少种走法?如图:假如。的位置不能走。(希望图能分辨清,左下角是(0,0))................................。。..........。....................................................... DP方程是:        F

2009-06-18 09:30:00 431

原创 memset的讨论

<br />问题来源是梁总在聚会上讲的故事.<br /> <br /> 标  题: 转自梁总blog<br />发信站: 水木社区 (Tue Jun 16 14:46:32 2009), 站内<br />  for(;;)<br />   {<br />      void* buffer = malloc(SIZE);<br />      memset(buffer,SIZE);<br />      process(buffer)<br />      free buffer;<br />   }<b

2009-06-16 17:57:00 542

原创 狄多公主圈地的故事

(二)狄多公主圈地的故事题目描述在希腊传说中,推罗国王穆顿有个聪明漂亮的公主叫狄多。狄多在她的王国里过着幸福快乐的生活,自由自在、无忧无虑,可是好景不长,不幸的事情发生了,她的丈夫被她的兄弟塞浦路斯王杀死了。狄多赶紧逃亡到了非洲西海岸,她想在这儿生活下来,于是她拿出随身携带的珠宝、玉器、金币,打算从当地酋长雅尔巴斯那里买些土地盖房子。狄多对酋长说:“我只要用一张牛皮包起来的地方。”酋长想也没想,一

2009-06-15 16:05:00 13663

原创 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 3634 3

原创 lucene文档编号的实验

lucene文档编号是内部定义的。每个段内是按0....N一直累加取值(按文档添加顺序分配),当段与段之间合并,那么当前段的文档编号会加上偏移值(在上一个段的基础上,比如原0...M,加上偏移为N+1....M+N); 我在用Lucene的时候有一个问题,我从数据库取数据,我和前台的约定就是基于数据库ID值的,也就是我检索的结果返回的是数据库ID而不是lucene的ID(前台才不知道L

2009-06-14 23:50:00 1659 1

原创 编辑距离

1.FuzzyQuery Lucene的FuzzyQuery是将词典中所有与查询串相似的构建BooleanQuery如何评估查询串和词典词项的相似性呢? 使用的是编辑距离(Edit distance 又名Levenshtein distance) 2.Levenshtein distance搞自然语言处理的应该不会对这个概念感到陌生,编辑距离就是用来计算从原串(s)

2009-06-08 23:25:00 1024

原创 CRF的内存使用情况

一些零碎的改动,以节约内存。用了10万个语句做语料。特征长度6419756模板如下,没改动# UnigramU00:%x[-2,0]U01:%x[-1,0]U02:%x[0,0]U03:%x[1,0]U04:%x[2,0]U05:%x[-1,0]/%x[0,0]U06:%x[0,0]/%x[1,0]U07:%x[-1,0]/%x[1,0]U08:%x[0,1]U09:%x[-1,1

2009-06-08 16:56:00 1035

原创 一些数据结构的内存和时间比较

用途是为了key-value做字符串查找,最少百万级别的词,主要关心的是:内存消耗和查询时间,但插入时间也在考虑范围之内。 vs2005 1.googles sparsehash2.judy array3.redblack tree4.stl map5.stl hash_map6.trie7.double array trie  google的

2009-06-08 16:48:00 773

原创 lucene索引笔记

一、一个文档添加 1.       添加一个新的document即是新加一个segment,段名是通过下划线和数字组成(段数),(如果每次加入文档都要做字段信息的统计和写磁盘,浪费,因为所有的文档拥有相同的字段和属性) 并将段信息写入fnm文件 文件结构:1.       字段数2.       段名字符串长度3.       段名字符串值4.      

2009-06-04 14:23:00 669

原创 compress algorithm

因为考虑到了索引的压缩和缓冲的压缩,所以看了下压缩算法一是lucene的变长字节编码二是较为新的PForDelta算法 变长字节编码就不说了,提一下PForDelta 1.       将数据按块划分(压缩),这里取的是128(uint8_t取值)2.       对小于等于128大小的数据块(抑或不足128)进行压缩压缩过程详解l  一趟遍历数据找到所有数据的

2009-05-20 21:35:00 1458

原创 r+树

 1.      将经纬度填充矩形,最大值和最小值合一,矩形实为线段2.      查找哈希表是否存在该点哈希算法是,移位操作,高32位经度,低32位纬度如果找到该键值,则将ID号填充如该键值下的记录序列矩形框(经纬度不重复添加入R树)如果查找不成功,则转步骤33.  将矩形填充入R树4.      int InsertRect插入过程       

2009-05-20 15:37:00 1217

原创 CRF汇总

 分词过程CRF分词原理1. CRF把分词过程看做字的词位分类问题,通常定义字的词位信息如下: 词首,常用B表示 词中,常用M表示 词尾,常用E表示 单子词,常用S表示  2. CRF分词的过程就是对词位标注后,将B和E之间的字,以及S单字构成分词  分词的类CRFSegParser/CRFSegProcessorCRFSegParser :分词

2009-05-20 15:32:00 11797 2

原创 mysql

mysql目录一览 /usr/bin    mysql客户端程序和脚本/usr/sbin   mysqld服务器/var/lib/mysql   mysql日志文件,数据库/usr/share/doc/packages   mysql文档/usr/include/mysql  mysql包含(头)文件/usr/lib/mysql      mysql库/usr/share/mysql    m

2009-05-10 01:03:00 763

原创 Firtex索引过程

一、 IndexWriter分配了存储100个文档的缓冲(每个文档又分配了存储字段的缓冲)此过程在void IndexWriter::defineSchema()函数中完成;    此函数的包括过程:分配可存储100个文档的缓冲…m_ppCachedDocs = new FX_NS(document)::Document*[m_nNumCachedDocs];// m_

2009-03-30 00:38:00 2847

原创 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 1779 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除