Hubble.Net 搜索引擎分析一

由于本人只关系搜索这方面的知识,所以只分析Hubble.Net内部关于搜索方面的知识。本人是一个业余爱好者,所以水平有限,望大家多多指点。

注:本人分析的是0[1].7.2.0-Src版本的代码。

 

1.       Hubble.Net 文件信息

由于Hubble.Net是和数据库结合构建搜索系统的。所以Hubble.Net只记录文档的索引信息,而文档本身内容记录与数据库中。Hubble.Net文档信息如下:

1.       *.hdx类型文件:记录索引词对应的索引信息。如索引词、在对应.idx文件中的位置和长度。

数据格式:size|postion|length|word   size包含了postion、length、word的大小

2. *.idx类型文件:记录索引词在文档中的信息。如文档ID、当前索引词在文档中出现的次数(count),其值和Data.length相等、记录当前索引词在文档中出现的位置列表(Data)、记录文档的Rank值。

    数据格式:Data.Length|DocId|Count|Rank|Data

    注:.hdx和.idx是成对出现的。.idx记录索引词在文档中的信息,如个数,位置,Rank。.hdx记录索引词、索引信息在idx文件中的位置和长度。文件名构成:{d:7}+ Serial。

3. Payload.db类型文件:记录Table数据列信息、文档ID、数据记录每列的索引词个数。数据列信息包含每列的field.Name 、field.TabIndex、field.DataType、field.DataLength、field.IndexType。数据记录每列的索引词个数。

    数据格式:field.Name +field.TabIndex+field.DataType+field.DataLength+field.IndexType(unicode MD5加密)|文档ID|Data(记录索引词个数)| 文档ID|Data(记录索引词个数)|..

    注:记录索引词个数等于每字段所以词个数列表。根据字段索引类型不同取值方法不同。Untokenized类型存储数据值本身,Tokenized类型存储数据值分词后的索引词个数。

4.  tableinfo.xml类型文件:存储Table配置信息。如表名称、ConnectionString、数据库中表名称(DBTableName)、数据列信息(Fields)、_DBAdapterTypeName、_ForceCollectCount(创建索引缓存文档个数)、_IndexOnly(索引是否只读)、_QueryCacheEnabled(是否支持查询缓存)、_QueryCacheTimeout(超时时间)、_SQLForCreate(创建SQL语句)。采用XML序列化存储Table配置信息。

5.  Delete.db类型文件:存储删除文档列表。

    数据格式:DocID| DocID| DocID| DocID.


你可能感兴趣的:(.net)