# /
# Lucene官方文档
https://lucene.apache.org/core/documentation.html
https://lucene.apache.org/core/8_11_2/core/org/apache/lucene/codecs/lucene87/package-summary.html
https://lucene.apache.org/core/8_11_2/core/org/apache/lucene/codecs/lucene84/Lucene84PostingsFormat.html
# indices索引文件
#GET /_cat/indices?v=true&s=index
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
green open .apm-agent-configuration PGesm8tMR5-3P6B4Mjl1kg 1 0 0 0 208b 208b
green open .apm-custom-link 1zbPHSHeR1OpsOT6AfsPCQ 1 0 0 0 208b 208b
green open .kibana-event-log-7.10.0-000001 KnD2CFXoQTqNHVX5HW2Izw 1 0 4 0 21.8kb 21.8kb
green open .kibana_1 h-UYu9j0Rf27hz73MmQj7g 1 0 32 22 10.4mb 10.4mb
green open .kibana_task_manager_1 j6JqejVLT5mPXoL9-hIAuA 1 0 5 35 358.9kb 358.9kb
yellow open easyes_document Mok0FvGQTke9JNKZ48UO_w 1 1 3 0 6.3kb 6.3kb
yellow open ee-distribute-lock -OnKsgorT2CQGXZkkZNYpQ 1 1 0 0 229b 229b
green open kibana_sample_data_ecommerce gdH9u2JjS0-PswW9cK-Vig 1 0 4675 0 4mb 4mb
green open kibana_sample_data_flights -t3mbN97QA-o-bITuq4CCQ 1 0 13059 0 5.4mb 5.4mb
green open kibana_sample_data_logs AFZsix3NTs-jZ8cODkAvSQ 1 0 14074 0 10mb 10mb
yellow open metrics_index WqAGTr2qQtq2tKRdzyrbcg 1 1 2 0 8.9kb 8.9kb
yellow open my-index-000001 xIyFBMm8T3eBe7ChG5ZeAA 1 1 4 0 20.5kb 20.5kb
2
3
4
5
6
7
8
9
10
11
12
13
14
#kibana_sample_data_logs
/d/myopt/elasticsearch-7.10.0/data/nodes/0/indices/AFZsix3NTs-jZ8cODkAvSQ/0/index
$ ls -sh1
total 11M
1.0K _0.cfe
2.2M _0.cfs
1.0K _0.si
1.0K _1.cfe
2.9M _1.cfs
1.0K _1.si
1.0K _2.cfe
2.8M _2.cfs
1.0K _2.si
1.0K _3.cfe
2.3M _3.cfs
1.0K _3.si
1.0K segments_3
0 write.lock
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#.kibana_1
/d/myopt/elasticsearch-7.10.0/data/nodes/0/indices/h-UYu9j0Rf27hz73MmQj7g/0/index
$ ls -sh1
total 11M
1.0K _jh.fdm
11M _jh.fdt
1.0K _jh.fdx
4.0K _jh.fnm
1.0K _jh.kdd
1.0K _jh.kdi
1.0K _jh.kdm
1.0K _jh.nvd
1.0K _jh.nvm
1.0K _jh.si
4.0K _jh_2.fnm
1.0K _jh_2_Lucene80_0.dvd
1.0K _jh_2_Lucene80_0.dvm
4.0K _jh_Lucene80_0.dvd
4.0K _jh_Lucene80_0.dvm
1.0K _jh_Lucene84_0.doc
1.0K _jh_Lucene84_0.pos
4.0K _jh_Lucene84_0.tim
1.0K _jh_Lucene84_0.tip
4.0K _jh_Lucene84_0.tmd
1.0K _k1.cfe
4.0K _k1.cfs
1.0K _k1.si
1.0K segments_1c
0 write.lock
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# FST压缩算法
Trie、FSA、FST分别存储以下key-value:abb=1,abbapp=2,abe=3,addapp=4
# FST的键值对
怎么表示abe与abbapp对应的字符串的值?
1、把值放在路径上,每个路径都是唯一的。
2、每个节点需要有自己的位置index
3、每个节点需要有出度列表(边列表)
(1)lable //表示“key字符串的字母”边的key
(2)output //表示“key字符串的字母”边的value
(3)next //表示下一节点的位置
# Postings压缩算法
倒排表是怎么存放文档ids的?
1、倒排表的采用一种名为RoaringBitmap压缩算法存放文档ids。
2、RoaringBitmap是基于Bitmap的优化。
# 倒排索引的核心组件
Term Dictionary
.tim文件包含每个字段中的术语列表,以及每个术语的统计信息(如docfreq)和指向.doc、.pos和.pay文件中频率、位置、有效载荷和跳过数据的指针。有关格式的更多详细信息,请参阅BlockTreeTermsWriter。
Term Index
.tip文件包含词条词典的索引,因此可以随机访问。有关格式的更多详细信息,请参阅BlockTreeTermsWriter。
Positions
.pos文件包含每个术语在文档中出现的位置列表。它有时还存储部分有效载荷和偏移量,以加快速度。
Frequencies and Skip Data
.doc文件包含包含每个术语的文档列表,以及该文档中术语的频率(省略频率时除外:Index Options.DOCS)。当文档列表的长度大于压缩块大小时,它还将跳过数据保存到每个压缩块或VInt块的开头。
# 倒排索引的基本架构
1、FST.key表示term的名称(字符串)。
2、FST.value表示term在倒排表的位置(数字)。
3、FST.key的前缀作为TermIndex的key,数据结构是Trie。
4、FST.key的后缀作为在TermDict的key。
5、PostingList倒排表的数据结构是RoaringBitmap。
注意:详见源码或官方文档。