亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

定義Lucene 1.3 用到的索引文件格式

2019-11-18 13:16:22
字體:
來源:轉載
供稿:網友

  Jakarta LUCene是用java寫成的,同時有很多團體正在默默的用其他的程序語言來改寫它。假如這些新的版本想和Jakarta Lucene兼容,就需要一個與具體語言無關的Lucene索引文件格式。本文正是試圖提供一個完整的與語言無關的Jakarta Lucene 1.3索引文件格式的規格定義。
  
  隨著Lucene不斷發展,本文也應該更新。不同語言寫成的Lucene實現版本應當盡力遵守文件格式,也必須產生本文的新版本。
  
  本文同時提供兼容性批注,描述文件格式上與前一版本不同的地方。
  
  定義
  Lucene中最基礎的概念是索引(index),文檔(document.,域(field)和項(term)。
  
  索引包含了一個文檔的序列。
  
  ·  文檔是一些域的序列。
  
  ·  域是一些項的序列。
  
  ·  項就是一個字串。
  
  存在于不同域中的同一個字串被認為是不同的項。因此項實際是用一對字串表示的,第一個字串是域名,第二個是域中的字串。
  
  倒排索引
  為了使得基于項的搜索更有效率,索引中項是靜態存儲的。Lucene的索引屬于索引方式中的倒排索引,因為對于一個項這種索引可以列出包含它的文檔。這剛好是文檔與項自然聯系的倒置。
  
  域的類型
  Lucene中,域的文本可能以逐字的非倒排的方式存儲在索引中。而倒排過的域稱為被索引過了。域也可能同時被存儲和被索引。
  
  域的文本可能被分解許多項目而被索引,或者就被用作一個項目而被索引。大多數的域是被分解過的,但是有些時候某些標識符域被當做一個項目索引是很有用的。
  
  段(Segment)
  Lucene索引可能由多個子索引組成,這些子索引成為段。每一段都是完整獨立的索引,能被搜索。索引是這樣作成的:
  
  1.  為新加入的文檔創建新段。
  
  2.  合并已經存在的段。
  
  搜索時需要涉及到多個段和/或者多個索引,每一個索引又可能由一些段組成。
  
  文檔號(document.nbspNumber)
  內部的來說,Lucene用一個整形(interger)的文檔號來指示文檔。第一個被加入到索引中的文檔就是0號,順序加入的文檔將得到一個由前一個號碼遞增而來的號碼。
  
  注重文檔號是可能改變的,所以在Lucene外部存儲這些號碼時必須小心。非凡的,號碼的改變的情況如下:
  
  ·  只有段內的號碼是相同的,不同段之間不同,因而在一個比段廣泛的上下文環境中使用這些號碼時,就必須改變它們。標準的技術是根據每一段號碼多少為每一段分配一個段號。將段內文檔號轉換到段外時,加上段號。將某段外的文檔號轉換到段內時,根據每段中可能的轉換后號碼范圍來判定文檔屬于那一段,并減調這一段的段號。例如有兩個含5個文檔的段合并,那么第一段的段號就是0,第二段段號5。第二段中的第三個文檔,在段外的號碼就是8。
  
  ·  文檔刪除后,連續的號碼就出現了間斷。這可以通過合并索引來解決,段合并時刪除的文檔相應也刪掉了,新合并而成的段并沒有號碼間斷。
  
  緒論
  索引段維護著以下的信息:
  
  ·  域集合。包含了索引中用到的所有的域。
  
  ·  域值存儲表。每一個文檔都含有一個“屬性-值”對的列表,屬性即為域名。這個列表用來存儲文檔的一些附加信息,如標題,url或者訪問數據庫的一個ID。在搜索時存儲域的集合可以被返回。這個表以文檔號標識。
  
  ·  項字典。這個字典含有所有文檔的所有域中使用過的的項,同時含有使用過它的文檔的文檔號,以及指向使用頻數信息和位置信息的指針。
  
  ·  項頻數信息。對于項字典中的每個項,這些信息包含含有這個項的文檔的總數,以及每個文檔中使用的次數。
  
  ·  項位置信息。對于項字典中的每個項,都存有在每個文檔中出現的各個位置。
  
  ·  Normalization factors. For each field in each document. a value is stored that is multiplied into the score for hits on that field. 標準化因子。對于文檔中的每一個域,存有一個值,用來以后乘以這個這個域的命中數(hits)。
  
  ·  被刪除的文檔信息。這是一個可選文件,用來表明那些文檔已經刪除了。
  
  接下來的各部分部分具體描述這些信息。
  
  文件的命名(File Naming)
  同屬于一個段的文件擁有相同的文件名,不同的擴展名。擴展名由以下討論的各種文件格式確定。
  
  一般來說,一個索引存放一個目錄,其所有段都存放在這個目錄里,盡管我們不要求您這樣做。
  
  基本數據類型(PRimitive Types)
  Byte
  
  最基本的數據類型就是字節(byte,8位)。文件就是按字節順序訪問的。其它的一些數據類型也定義為字節的序列,文件的格式具有字節意義上的獨立性。
  
  UInt32
  
  32位無符號整數,由四個字節組成,高位優先。
  
  UInt32 --> <Byte>4
  
  Uint64
  
  64位無符號整數,由八字節組成,高位優先。
  
  UInt64 --> <Byte>8
  
  VInt
  
  可變長的正整數類型,每字節的最高位表明還剩多少字節。每字節的低七位表明整數的值。因此單字節的值從0到127,兩字節值從128到16,383,等等。
  
  VInt 編碼示例
  value
   First byte
   Second byte
   Third byte
  
  0
   00000000
   
  1
   00000001
   
  2
   00000010
  
  ...
   
  127
   01111111
   
  128
   10000000
   00000001
  
  129
   10000001
   00000001
  
  130
   10000010
   00000001
   ...
  16,383
   11111111
   01111111
  
  16,384
   10000000
   10000000
   00000001
  
  16,385
   10000001
   10000000
   00000001
  ...
   
  這種編碼提供了一種在高效率解碼時壓縮數據的方法。
  
  Chars
  
  Lucene輸出UNICODE字符序列,使用標準UTF-8編碼。
  
  String
  
  Lucene輸出由VINT和字符串組成的字串,VINT表示字串長,字符串緊接其后。
  
  String --> VInt, Chars
  
  索引包含的文件(Per-Index Files)
  這部分介紹每個索引包含的文件。
  
  Segments文件
   索引中活動的段存儲在Segments文件中。每個索引只能含有一個這樣的文件,名為"segments".這個文件依次列出每個段的名字和每個段的大小。
  
  Segments --> SegCount, <SegName, SegSize>SegCount
  
  SegCount, SegSize --> UInt32
  
  SegName --> String
  
  SegName表示該segment的名字,同時作為索引其他文件的前綴。
  
  SegSize是段索引中含有的文檔數。
  
  Lock文件
  有一些文件用來表示另一個進程在使用索引。
  
  ·  假如存在"commit.lock"文件,表示有進程在寫"segments"文件和刪除無用的段索引文件,或者表示有進程在讀"segments"文件和打開某些段的文件。在一個進程在讀取"segments"文件段信息后,還沒來得及打開所有該段的文件前,這個Lock文件可以防止另一個進程刪除這些文件。
  
  ·  假如存在"index.lock"文件,表示有進程在向索引中加入文檔,或者是從索引中刪除文檔。這個文件防止很多文件同時修改一個索引。
  
  Deleteable文件
  名為"deletetable"的文件包含了索引不再使用的文件的名字,這些文件可能并沒有被實際的刪除。這種情況只存在與Win32平臺下,因為Win32下文件仍打開時并不能刪除。
  
  Deleteable --> DelableCount, <DelableName>DelableCount
  
  DelableCount --> UInt32
  
  DelableName --> String
  
  段包含的文件(Per-Segment Files)
  剩下的文件是每段中包含的文件,因此由后綴來區分。
  
  域(Field)
  
  域集合信息(Field Info)
  
  所有域名都存儲在這個文件的域集合信息中,這個文件以后綴.fnm結尾。
  
  FieldInfos (.fnm) --> FieldsCount, <FieldName, FieldBits>FieldsCount
  
  FieldsCount --> VInt
  
  FieldName --> String
  
  FieldBits --> Byte
  
  目前情況下,FieldBits只有使用低位,對于已索引的域值為1,對未索引的域值為0。
  
  文件中的域根據它們的次序編號。因此域0是文件中的第一個域,域1是接下來的,等等。這個和文檔號的編號方式相同。
  
  域值存儲表(Stored Fields)
  
  域值存儲表使用兩個文件表示:
  
  1.  域索引(.fdx文件)。
  
  如下,對于每個文檔這個文件包含指向域值的指針:
  
  FieldIndex (.fdx) --> <FieldvaluesPosition>SegSize
  
  FieldvaluesPosition --> Uint64
  
  FieldvaluesPosition指示的是某一文檔的某域的域值在域值文件中的位置。因為域值文件含有定長的數據信息,因而很輕易隨機訪問。在域值文件中,文檔n的域值信息就存在n*8

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
福利视频导航一区| 国产深夜精品福利| 两个人的视频www国产精品| 亚洲精品福利在线观看| 日韩高清有码在线| 国产精品久久久久久久7电影| 96精品久久久久中文字幕| 国产精品久久综合av爱欲tv| 欧美一级片在线播放| 亚洲第一精品自拍| 91成人福利在线| 亚洲最新在线视频| 国产成人精品久久二区二区| 亚洲激情第一页| 欧美性生活大片免费观看网址| 欧美成人h版在线观看| 日本成人黄色片| 一区二区亚洲精品国产| 黄网站色欧美视频| 欧美激情欧美狂野欧美精品| 国产精品美乳一区二区免费| 欧美成人精品激情在线观看| 亚洲国产日韩欧美在线动漫| 国产精品中文久久久久久久| 国产精品久久久久av| 国产精品久久91| 亚洲肉体裸体xxxx137| 亚洲成人999| 欧美日在线观看| 丝袜亚洲另类欧美重口| 疯狂做受xxxx欧美肥白少妇| 日韩精品中文字幕有码专区| 日本精品一区二区三区在线| 国产精品视频永久免费播放| 欧美性视频在线| 九色成人免费视频| 中文字幕日韩欧美在线| 色综合视频网站| 亚洲日韩第一页| 欧美极品在线视频| 亚洲成人激情在线观看| 欧美诱惑福利视频| 久久成人在线视频| 久久久久久久国产精品视频| 日韩禁在线播放| 国产在线观看精品一区二区三区| 精品在线小视频| 欧美野外wwwxxx| 国产丝袜一区二区三区| 欧美国产日韩中文字幕在线| 日韩av在线看| 日韩欧美有码在线| 久久人人爽人人爽人人片av高清| 欧美整片在线观看| 97久久精品人搡人人玩| 日韩视频在线免费| 欧美日韩人人澡狠狠躁视频| 欧美国产精品日韩| 欧美自拍大量在线观看| 国产精品6699| 亚洲国产精品电影| 欧美一区二区三区精品电影| 精品视频在线播放色网色视频| 不卡在线观看电视剧完整版| 欧美电影免费观看高清完整| 国产精品吹潮在线观看| 久久免费在线观看| 日韩欧美视频一区二区三区| 性欧美xxxx| 国产98色在线| 久久在线精品视频| 久久久成人的性感天堂| 精品国产一区av| 亚洲激情久久久| 日韩成人免费视频| 国模视频一区二区三区| 色视频www在线播放国产成人| 欧美猛交免费看| 一区二区三区回区在观看免费视频| 国产精品久久久久久超碰| 欧美亚洲一区在线| 久久精品99无色码中文字幕| 欧美激情亚洲激情| 日韩中文字幕在线精品| 在线视频免费一区二区| 日韩av快播网址| 色悠悠国产精品| 海角国产乱辈乱精品视频| 日韩美女视频在线观看| 欧美第一黄网免费网站| 亚洲自拍偷拍一区| 久久精品国产亚洲精品| 4438全国亚洲精品在线观看视频| 日韩亚洲在线观看| 97精品国产91久久久久久| 久久精品电影网站| 日韩欧美视频一区二区三区| 正在播放亚洲1区| 国产精品专区h在线观看| 亚洲一区亚洲二区| 精品中文字幕在线观看| 国产精品美女主播| 日韩国产欧美精品一区二区三区| yw.139尤物在线精品视频| 午夜精品久久久久久99热软件| 97视频在线播放| 九九精品视频在线| 国内自拍欧美激情| 欧美另类高清videos| 国产精品久久久久av免费| 777777777亚洲妇女| 日韩中文字在线| 国产精品视频一区国模私拍| 日韩在线视频网站| 欧美成人一区在线| 成人中心免费视频| 91欧美精品成人综合在线观看| 91精品国产综合久久香蕉的用户体验| 国产精品久久综合av爱欲tv| 日韩中文字幕视频在线观看| 国产91亚洲精品| 91牛牛免费视频| 国产一区二区免费| 欧美日韩另类字幕中文| 亚洲精品白浆高清久久久久久| 亚洲自拍欧美色图| 91精品久久久久久久久久入口| 久久久久久九九九| 亚洲一级一级97网| 日韩电影免费观看在线| 91久久精品美女高潮| 亚洲视频在线观看| 亚洲精品二三区| 国产视频久久久久久久| 亚洲japanese制服美女| 啊v视频在线一区二区三区| 91免费福利视频| 久久久www成人免费精品张筱雨| 欧美亚洲一级片| 中文字幕精品一区二区精品| 国产精品大片wwwwww| 国产成人精品日本亚洲| 国产成人精品免高潮在线观看| 97色在线视频观看| 精品久久久在线观看| 久久久噜噜噜久久| 国产成人精品免高潮费视频| 777午夜精品福利在线观看| 国产精品亚洲片夜色在线| 成人黄色生活片| 国产成人精品久久二区二区91| 成人在线免费观看视视频| 欧美超级免费视 在线| 日韩国产欧美精品一区二区三区| 日韩av在线电影网| 91精品久久久久久综合乱菊| 久热精品视频在线观看一区| 高清欧美电影在线| 亚洲欧美日本精品| 人体精品一二三区| 国产成人福利视频| 欧美日韩精品中文字幕| 欧美国产日韩xxxxx| 日韩精品免费在线观看|