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

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

Lucene 索引文件格式的規格定義

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

  本文定義了LUCene(版本1.3)用到的索引文件的格式。
  
  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 --> 4
  
  Uint64
  
  64位無符號整數,由八字節組成,高位優先。
  
  UInt64 --> 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, SegCount
  
  SegCount, SegSize --> UInt32
  
  SegName --> String
  
  SegName表示該segment的名字,同時作為索引其他文件的前綴。
  
  SegSize是段索引中含有的文檔數。
  
  Lock文件
  有一些文件用來表示另一個進程在使用索引。
  
  ·  假如存在"commit.lock"文件,表示有進程在寫"segments"文件和刪除無用的段索引文件,或者表示有進程在讀"segments"文件和打開某些段的文件。在一個進程在讀取"segments"文件段信息后,還沒來得及打開所有該段的文件前,這個Lock文件可以防止另一個進程刪除這些文件。
  
  ·  假如存在"index.lock"文件,表示有進程在向索引中加入文檔,或者是從索引中刪除文檔。這個文件防止很多文件同時修改一個索引。
  
  Deleteable文件
  名為"deletetable"的文件包含了索引不再使用的文件的名字,這些文件可能并沒有被實際的刪除。這種情況只存在與Win32平臺下,因為Win32下文件仍打開時并不能刪除。
  
  Deleteable --> DelableCount, DelableCount
  
  DelableCount --> UInt32
  
  DelableName --> String
  
  段包含的文件(Per-Segment Files)
  剩下的文件是每段中包含的文件,因此由后綴來區分。
  
  域(Field)
  
  域集合信息(Field Info)
  所有域名都存儲在這個文件的域集合信息中,這個文件以后綴.fnm結尾。
  
  FieldInfos (.fnm) --> FieldsCount, FieldsCount
  
  FieldsCount --> VInt
  
  FieldName --> String
  
  FieldBits --> Byte
  
  目前情況下,FieldBits只有使用低位,對于已索引的域值為1,對未索引的域值為0。
  
  文件中的域根據它們的次序編號。因此域0是文件中的第一個域,域1是接下來的,等等。這個和文檔號的編號方式相同。
  
  域值存儲表(Stored Fields)
  域值存儲表使用兩個文件表示:
  
  1.  域索引(.fdx文件)。
  
  如下,對于每個文檔這個文件包含指向域值的指針:
  
  FieldIndex (.fdx) --> SegSize
  
  FieldvaluesPosition --> Uint64
  
  FieldvaluesPosition指示的是某一文檔的某域的域值在域值文件中的位置。因為域值文件含有定

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品成人品| 国产精品一香蕉国产线看观看| 久久国产精品久久久| 亚洲国产成人精品女人久久久| 日韩在线免费av| 亚洲最大福利视频网| 亚洲成人黄色在线| 亚洲欧美在线第一页| 欧美成人h版在线观看| 福利微拍一区二区| 亚洲免费视频一区二区| 国产精品成久久久久三级| 日韩性xxxx爱| 国产成人精品av在线| 午夜精品久久久久久99热软件| 成人av在线网址| 久久久久久久久久久av| 国产一区香蕉久久| 色婷婷**av毛片一区| 97久久久免费福利网址| 亚洲毛片一区二区| 欧美成年人在线观看| 亚洲图片欧美日产| 久久精品色欧美aⅴ一区二区| 欧美日本精品在线| 欧美亚洲另类激情另类| 欧美日韩加勒比精品一区| 91九色国产社区在线观看| 国产视频精品va久久久久久| 欧美高清videos高潮hd| 中文字幕久久精品| 国产精品第8页| 中文字幕不卡在线视频极品| 98精品在线视频| 九九九热精品免费视频观看网站| 欧美日韩电影在线观看| 久久久久久999| 亚洲欧美制服中文字幕| 欧美激情精品久久久久久变态| 国产一区二区三区直播精品电影| 91精品国产99久久久久久| 亚洲成人中文字幕| 日本精品中文字幕| 国产精品久久久久久久久久三级| 国产精品久久久久久影视| 神马久久桃色视频| 国产精品视频色| 欧美激情三级免费| 成人免费观看49www在线观看| 深夜精品寂寞黄网站在线观看| 欧美黑人性生活视频| 九九热这里只有在线精品视| 国产精品久久网| 久久久久久尹人网香蕉| 91精品国产91久久久| 亚洲人精选亚洲人成在线| 国内精品模特av私拍在线观看| 久久久免费av| 国产成人97精品免费看片| 一区二区三区回区在观看免费视频| 69av成年福利视频| 国产成人91久久精品| 欧美日韩视频在线| 国产精品99久久99久久久二8| 国产精品久久久久久久久免费看| 成人精品视频99在线观看免费| 97人人爽人人喊人人模波多| 俺去亚洲欧洲欧美日韩| 欧美日韩福利在线观看| 色吧影院999| 97香蕉超级碰碰久久免费的优势| 久久精品中文字幕| 欧美裸体xxxx极品少妇| 中文字幕在线日韩| 成人国产精品色哟哟| 欧美黑人巨大xxx极品| 日韩禁在线播放| 亚洲精品720p| 欧美成人午夜视频| 日韩成人xxxx| 亚洲欧美日韩另类| 久久人人看视频| 精品一区二区亚洲| 久久久人成影片一区二区三区观看| 欧美日韩亚洲天堂| 日韩小视频网址| 亚洲欧美成人网| 日韩最新av在线| 亚洲精品美女网站| www.日韩.com| 久久免费视频在线观看| 欧美午夜激情小视频| 国模私拍一区二区三区| 中文字幕日韩精品在线| 国产视频精品久久久| 日韩色av导航| 91中文字幕在线观看| 欧美日韩在线视频首页| 亚洲欧美综合另类中字| 国产日韩在线免费| 精品亚洲男同gayvideo网站| 亚洲第一福利在线观看| 亚洲欧美日韩精品久久奇米色影视| 欧美日韩国产一中文字不卡| 日韩一区在线视频| 日韩av中文字幕在线| 国产精品香蕉在线观看| 久久精品免费播放| 日韩中文字幕在线观看| 日韩欧美亚洲国产一区| 久久久av亚洲男天堂| 国内精品久久久久久中文字幕| 91夜夜未满十八勿入爽爽影院| 亚洲国产成人精品一区二区| 国产精品久久久久久久美男| 欧美日本啪啪无遮挡网站| 国产精品高潮呻吟久久av黑人| 国产精品美女久久久久久免费| 欧美成人免费全部观看天天性色| 精品国产一区二区三区久久狼5月| 国产欧美日韩最新| 久青草国产97香蕉在线视频| 日韩在线观看精品| 97精品欧美一区二区三区| 欧美夜福利tv在线| 91夜夜揉人人捏人人添红杏| 欧美最近摘花xxxx摘花| 日韩资源在线观看| 久久久久免费精品国产| 日本国产欧美一区二区三区| 国产精品永久免费观看| 欧美日在线观看| 国产精品美女www爽爽爽视频| 国产成人午夜视频网址| 国产精品一久久香蕉国产线看观看| 久久免费高清视频| 亚洲国产精品久久久久久| 国产欧美精品在线播放| 欧美在线欧美在线| 国产一区视频在线| 97精品国产97久久久久久春色| 亚洲欧美国产精品va在线观看| 欧美激情欧美狂野欧美精品| 欧美成人h版在线观看| 欧美精品久久久久久久免费观看| 国产精品美女免费看| 久久精品视频中文字幕| 欧美一级黄色网| 奇米影视亚洲狠狠色| 性色av一区二区三区免费| 久久久精品国产网站| 欧美一区二粉嫩精品国产一线天| 亚洲精品国产精品乱码不99按摩| 97超级碰碰碰| 久久久久久999| 色爱av美腿丝袜综合粉嫩av| 久久精品小视频| 欧美成人一区在线| 日韩欧美中文在线| 少妇高潮久久77777| 欧美理论电影在线观看| 92版电视剧仙鹤神针在线观看| 亚洲a级在线播放观看| 中文字幕亚洲欧美日韩2019|