全文索引是一个通用的组件程序,不同的用户会有不同的数据大小和硬件配置。为了使全文索引都能充分发挥效果,采用了通过修改配置文件达到个性化的目的。
全文索引的字典采用静态哈希结构存储,当单词数过多时会导致字典的冲突链非常长,而更新索引需要多次查询该哈希表,冲突链过长会导致更新速度急剧变慢。缺省哈希桶长度为 65536*256, 文件存放在 metadata 目录下的对应列目录中,命名规则为 CXXXXX.FTD,其中 XXXXX 为列的序号。
修改线程数
更新全文索引采用多线程并行的方式,具体分为分词、排序、输出等线程。当服务器 CPU 核数比较大时,可以通过修改这三个参数使应能达到最优。当用户想充分利用 CPU 资源时,推荐该三个参数设置为 CPU 核数*3/4 能使系统达到最优。
<segThreads>4</segThreads> <sortThreads>4</sortThreads> <outThreads>3</outThreads> |
修改字典哈希桶数
全文索引的字典采用静态哈希结构存储,当单词数过多时会导致字典的冲突链非常长,而更新索引需要多次查询字典,冲突链过长会导致更新速度急剧变慢。缺省哈希桶长度为 65536*256。对应配置项参数如下:
<dictSlotPerUnit>16777216</dictSlotPerUnit>
快速更新标志的含义
更改全文索引的哈希桶数能够有效提升更新全文索引的速度,但当字典中单词数过多,文档内容过大(尤其 URI 模式)仍然不能满足用户的需求,可以采用该模式。该模式下索引数据采用多文件并发写入,能够有效解决 IO 等待瓶颈,从而使速度大大降低。对应配置项参数如下(0:不快速更新; 1:快速更新):
<quickUpdate>0</quickUpdate>