欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
想學(xué)習lucene不得不知道的基礎知識收集整理摘錄

【monner題外寄語(yǔ)】lucene的確是個(gè)好東西!如果你有時(shí)間,我強烈推薦你學(xué)習下!

    這幾天,有個(gè)朋友問(wèn)我如何學(xué)習編程,我都不知道怎么回答,哈哈,閑聊幾句先:如果你想學(xué)習一門(mén)計算機語(yǔ)言,比如java語(yǔ)言,我覺(jué)得你沒(méi)有必要整天保證那些經(jīng)典書(shū)籍啃來(lái)啃去,死記硬背基本語(yǔ)法和規則,拼命理解面向對象編程思想,這些過(guò)程其實(shí)很累很枯燥,我見(jiàn)多了很多初學(xué)者抱著(zhù)大部頭書(shū)籍看呀看,到處收集編程入門(mén),代碼技巧等知識,哈哈~真的很累!更有甚者,為了權衡一門(mén)語(yǔ)言孰優(yōu)孰劣,竟然花幾年時(shí)間都不能確定自己的目標。什么匯編無(wú)用,VB好用、.NET好、JAVA壞,還有什么win平臺漏洞多,Unix平臺穩定之類(lèi)的等等~~發(fā)現論壇上初學(xué)者板塊這種話(huà)題特別熱特別受歡迎!覺(jué)得好可悲,計算機語(yǔ)言其實(shí)是一通百通的,你學(xué)任何一門(mén)如果學(xué)到極致,想轉而學(xué)習其他語(yǔ)言簡(jiǎn)直就是小兒科!其實(shí)如果想學(xué)好一門(mén)計算機語(yǔ)言,你一定一開(kāi)始就不要畏懼它,我敢說(shuō),計算機語(yǔ)言比起我們漢語(yǔ)來(lái),要簡(jiǎn)單100倍,你漢語(yǔ)會(huì )說(shuō)會(huì )寫(xiě)文章,你就一定可以,甚者你不會(huì )說(shuō)都不要緊,只要你會(huì )思想,你會(huì )表達自己的需要,你會(huì )把別人的需要用自己的想法表達重述出來(lái),你就一定可以學(xué)會(huì )計算機開(kāi)發(fā)?。?! 何謂計算機語(yǔ)言編程?一言以蔽之:編程就是翻譯過(guò)程,把你的需求用計算機語(yǔ)言翻譯出來(lái)!只要你講得清楚需求,理論上就一定可以用計算機語(yǔ)言編程實(shí)現!只是各種計算機語(yǔ)言的表達方式不同! 我敢說(shuō),一但你在思想上認識到這一點(diǎn),并從心底深處開(kāi)始不要畏懼編程,哪么你可以很快的進(jìn)入翻譯狀態(tài)的?。?! 編程就是一種邏輯思維用規則的語(yǔ)言表述而已!學(xué)習編程語(yǔ)言的基礎語(yǔ)法知識只是在熟悉規則而已,規則多少不重要,關(guān)鍵是應用規則為你帶來(lái)便利,甚者你玩潛規則,玩規則漏洞都行,做人做事和編程開(kāi)發(fā)如出一轍!

 

 

  哈哈~跑題了,言歸正傳吧。希望我收集整理來(lái)的基礎知識可以讓你學(xué)習lucene的歷程加速!大多數資料都來(lái)自網(wǎng)絡(luò ),我的原創(chuàng )很少,因為收集零散,不一一注明原作者(其實(shí)主要作者是車(chē)東 車(chē)東是國內研究lucene搜索引擎的先驅者,lucene中一些關(guān)于中文處理的代碼就是他寫(xiě)的,已經(jīng)正式收錄到lucene核心代碼中了),在此一并聲明對原作者的感謝感謝感謝!版權都屬于你們,俺是給你們打工做苦力的。

 

 

======================================================================

【摘錄收集】

------------------------------------------------------------------------------------------------------------------------------

一、Lucene點(diǎn)滴: (發(fā)音為['lusen]),我經(jīng)常就讀鹿神,是頭活蹦亂跳的好鹿,研究它吧,保證感覺(jué)它很神!lucene是一個(gè)非常優(yōu)秀的開(kāi)源的全文搜索引擎,我們可以在它的上面開(kāi)發(fā)出各種全文搜索的應用來(lái)。Lucene在國外有很高的知名度,現在已經(jīng)是Apache的頂級項目。

 

二、倒排索引原理簡(jiǎn)述:Lucene是一個(gè)高性能的java全文檢索工具包,它使用的是倒排文件索引結構。

具體解釋算法理論就不講了,直接用例子來(lái)說(shuō)明吧,如果你認真仔細的讀懂例子,真正領(lǐng)會(huì )了其中的思想,你肯定就明白了lucene索引的基本原理!記?。豪斫?!把例子用你自己的語(yǔ)言表述出來(lái),就是翻譯成你自己的東西,以后你想自己寫(xiě),也就是換成計算機語(yǔ)言再翻譯一次??!

lucene結構及相應的生成算法如下:

我們設有兩篇文章1和2
   文章1的內容為:Tom lives in Guangzhou,I live in Guangzhou too.
   文章2的內容為:He once lived in Shanghai.

 

1)全文分析由于lucene是基于關(guān)鍵詞索引和查詢(xún)的,首先我們要取得這兩篇文章的關(guān)鍵詞,通常我們需要如下處理措施
  a.我們現在有的是文章內容,即一大串字符串,我們先要找出全文字符串中的所有單詞,即分詞。英文單詞由于用空格分隔,比較好處理。中文單詞間是連在一起的需要特殊的分詞處理。(中文通常用詞典的方式比較準確)
  b.文章中的”in”, “once” “too”等詞沒(méi)有什么實(shí)際意義,中文中的“的”“是”等字通常也無(wú)具體含義,這些不代表概念的詞可以過(guò)濾掉,即分詞解析中的過(guò)濾
  c.用戶(hù)通常希望查“He”時(shí)能把含“he”,“HE”的文章也找出來(lái),所以所有單詞需要統一大小寫(xiě)。即解析過(guò)程中的額外處理(用戶(hù)可以根據自己需要增加多重處理)。
  d.用戶(hù)通常希望查“l(fā)ive”時(shí)能把含“l(fā)ives”,“l(fā)ived”的文章也找出來(lái),所以需要把“l(fā)ives”,“l(fā)ived”還原成“l(fā)ive”即進(jìn)一步優(yōu)化處理(可以更人性更友好)
  e.文章中的標點(diǎn)符號通常不表示某種概念,也可以過(guò)濾掉
 所有上面描述的步驟在lucene中都由Analyzer類(lèi)完成!你了解了過(guò)程,你就可以根據自己的興趣或者需要去關(guān)心特點(diǎn)的步驟相關(guān)代碼,或者自己進(jìn)一步添磚加瓦擴展功能。

 

 經(jīng)過(guò)上面處理后
  文章1的所有關(guān)鍵詞為:[tom] [live] [guangzhou] [i] [live] [guangzhou]
  文章2的所有關(guān)鍵詞為:[he] [live] [shanghai]

 

 

2)倒排索引有了關(guān)鍵詞后,我們就可以建立倒排索引了。

上面經(jīng)過(guò)解析后的對應關(guān)系是:“文章號”對“文章中所有關(guān)鍵詞”。

這種對應比較符合我們正常的思維習慣,反過(guò)來(lái)對應的話(huà),就要顛倒思維,所以這種算法叫做倒排! 倒排索引把這個(gè)關(guān)系倒過(guò)來(lái),變成:“關(guān)鍵詞”對“擁有該關(guān)鍵詞的所有文章號”。文章1,2經(jīng)過(guò)倒排后變成
       關(guān)鍵詞                       文章號
  guangzhou                   1
  he                                 2
  i                                    1
  live                               1,2
  shanghai                       2
  tom                               1

  進(jìn)一步擴展上述基本倒排索引,通常我們僅知道關(guān)鍵詞在哪些文章中出現還不夠,我們還需要知道關(guān)鍵詞在文章中出現次數和出現的位置,通常有兩種位置:a)字符位置,即記錄該詞是文章中第幾個(gè)字符(優(yōu)點(diǎn)是關(guān)鍵詞亮顯時(shí)定位快);b)關(guān)鍵詞位置,即記錄該詞是文章中第幾個(gè)關(guān)鍵詞(優(yōu)點(diǎn)是節約索引空間、詞組(phase)查詢(xún)快),lucene 中記錄的就是這種位置。

 

加上“出現頻率”和“出現位置”信息后,我們的索引結構充實(shí)后變?yōu)椋?nbsp;

 

 

 關(guān)鍵詞  文章號  [出現頻率]  出現位置
 guangzhou  1  [2]  3,6
 he  2  [1]  1
 i  1  [1]  4
 live  1  [2]  2,5
   2  [1]  2
 shanghai  2  [1]  3
 tom  1  [1]  1

 

  以第4行的 live 詞語(yǔ)索引記錄作實(shí)例我們說(shuō)明一下該結構:

      live在文章1中出現了2次,文章2中出現了一次,它的出現位置為“2,5,2”這表示什么呢?我們需要結合文章號和出現頻率來(lái)分析,文章1中出現了2次,那么“2,5”就表示live在文章1中出現的兩個(gè)位置,文章2中出現了一次,剩下的“2”就表示live是文章2中第 2個(gè)關(guān)鍵字。
  以上就是lucene索引結構中最核心的部分。是不是描述起來(lái)很簡(jiǎn)單,沒(méi)錯,其實(shí)也就是這么簡(jiǎn)單!算法都是人想出來(lái)的,毛主席說(shuō)過(guò) 辦法總比困難多,計算機算法也不例外,你何必恐懼它呢,本來(lái)就是很容易的事情?。?!

【進(jìn)一步深入探索,如果你不想深入,完全可以略過(guò)不看】     

 如果你對計算機算法和數據結構稍有研究,你就很容易發(fā)現,我們上面生成的倒排索引關(guān)鍵字是按字母字符順序排列的(lucene沒(méi)有使用B樹(shù)結構),因此lucene可以用二元搜索算法快速定位關(guān)鍵詞。

  具體實(shí)現時(shí) lucene將上面三列分別作為詞典文件(Term Dictionary)、頻率文件(frequencies)、位置文件(positions)保存。其中詞典文件不僅保存有每個(gè)關(guān)鍵詞,還保留了指向頻率文件和位置文件的指針,通過(guò)指針可以找到該關(guān)鍵字的頻率信息和位置信息。

  Lucene中使用了field的概念,用于表達信息所在位置(如標題中,文章中,url中),在建索引中,該field信息也記錄在詞典文件中,每個(gè)關(guān)鍵詞都有一個(gè)field信息(因為每個(gè)關(guān)鍵字一定屬于一個(gè)或多個(gè)field)。
  為了減小索引文件的大小,Lucene對索引還使用了壓縮技術(shù)。首先,對詞典文件中的關(guān)鍵詞進(jìn)行了壓縮,關(guān)鍵詞壓縮為<前綴長(cháng)度,后綴>,例如:當前詞為“阿拉伯語(yǔ)”,上一個(gè)詞為“阿拉伯”,那么“阿拉伯語(yǔ)”壓縮為<3,語(yǔ)>。其次大量用到的是對數字的壓縮,數字只保存與上一個(gè)值的差值(這樣可以減小數字的長(cháng)度,進(jìn)而減少保存該數字需要的字節數)。例如當前文章號是16389(不壓縮要用3個(gè)字節保存),上一文章號是16382,壓縮后保存7(只用一個(gè)字節)。注意是“上一個(gè)詞”。由于詞典是按順序排列的,這種壓縮方法的效果會(huì )非常顯著(zhù)。

 

 

 

 

三、全文檢索框架的實(shí)現機制:

  Lucene的API接口設計的比較通用,輸入輸出結構都很像數據庫的表==>記錄==>字段,所以很多傳統的應用的文件、數據庫等都可以比較方便的映射到Lucene的存儲結構/接口中??傮w上看:可以先把Lucene當成一個(gè)支持全文索引的數據庫系統。

比較一下Lucene數據存儲 和 傳統的關(guān)系數據庫之間的區別:

 

 Lucene  數據庫

 索引數據源:doc(field1,field2...) doc(field1,field2...) 

            \  indexer /
        _____________
        | Lucene Index |
            --------------
           / searcher \

結果輸出:Hits(doc(field1,field2) doc(field1...))

 索引數據源:record(field1,field2...) record(field1..)  

            \  SQL: insert/ 
          _____________
           |   DB  Index   |
               ------------- 
            / SQL: select \

結果輸出:results(record(field1,field2..) record(field1...))

 Document:一個(gè)需要進(jìn)行索引的“單元,一個(gè)Document由多個(gè)字段組成

 Record:記錄,包含多個(gè)字段

Field:字段

Field:字段

Hits:查詢(xún)結果集,由匹配的Document組成

 RecordSet:查詢(xún)結果集,由多個(gè)Record組成

      請一定記?。喝臋z索 ≠ 數據庫SQL語(yǔ)句中的  like "%keyword%"

  由于數據庫索引不是為全文索引設計的,因此,使用like "%keyword%"時(shí),數據庫索引是不起作用的,在使用like查詢(xún)時(shí),搜索過(guò)程又變成類(lèi)似于一頁(yè)頁(yè)翻書(shū)的遍歷過(guò)程了,所以對于含有模糊查詢(xún)的數據庫服務(wù)來(lái)說(shuō),LIKE對性能的危害是極大的。如果是需要對多個(gè)關(guān)鍵詞進(jìn)行模糊匹配:like"%keyword1%" and like "%keyword2%" ...其效率也就可想而知了。

  通常比較厚的書(shū)籍后面常常附關(guān)鍵詞索引表(比如:北京:12, 34頁(yè),上海:3,77頁(yè)……),它能夠幫助讀者比較快地找到相關(guān)內容的頁(yè)碼。而數據庫索引能夠大大提高查詢(xún)的速度原理也是一樣,想像一下通過(guò)書(shū)后面的索引查找的速度要比一頁(yè)一頁(yè)地翻內容高多少倍……而索引之所以效率高,另外一個(gè)原因是它是排好序的。對于檢索系統來(lái)說(shuō)核心是一個(gè)排序問(wèn)題。

  所以建立一個(gè)高效檢索系統的關(guān)鍵是建立一個(gè)類(lèi)似于科技索引一樣的反向索引機制,將數據源(比如多篇文章)排序順序存儲的同時(shí),有另外一個(gè)排好序的關(guān)鍵詞列表,用于存儲關(guān)鍵詞==>文章映射關(guān)系,利用這樣的映射關(guān)系索引:[關(guān)鍵詞==>出現關(guān)鍵詞的文章編號,出現次數(甚至包括位置:起始偏移量,結束偏移量),出現頻率],檢索過(guò)程就是把模糊查詢(xún)變成多個(gè)可以利用索引的精確查詢(xún)的邏輯組合的過(guò)程。從而大大提高了多關(guān)鍵詞查詢(xún)的效率,所以,全文檢索問(wèn)題歸結到最后是一個(gè)排序問(wèn)題。

  由此可以看出模糊查詢(xún)相對數據庫的精確查詢(xún)是一個(gè)非常不確定的問(wèn)題,這也是大部分數據庫對全文檢索支持有限的原因。

     Lucene最核心的特征是通過(guò)特殊的索引結構實(shí)現了傳統數據庫不擅長(cháng)的全文索引機制,并提供了擴展接口,以方便針對不同應用的定制。

  我們對比一下Lucene全文索引 和 關(guān)系數據庫模糊查詢(xún) 算法區別:

 

   Lucene全文索引引擎  數據庫
 索引  將數據源中的數據都通過(guò)全文索引一一建立倒排索引  對于LIKE查詢(xún)來(lái)說(shuō),數據傳統的索引是根本用不上的。數據需要逐個(gè)便利記錄進(jìn)行GREP式的模糊匹配,比有索引的搜索速度要有多個(gè)數量級的下降。
 匹配效果  通過(guò)詞元(term)進(jìn)行匹配,通過(guò)語(yǔ)言分析接口的實(shí)現,可以實(shí)現對中文等非英語(yǔ)的支持。  使用:like "%net%" 會(huì )把netherlands也匹配出來(lái),
多個(gè)關(guān)鍵詞的模糊匹配:使用like "%com%net%":就不能匹配詞序顛倒的xxx.net..xxx.com
 匹配度  有匹配度算法,將匹配程度(相似度)比較高的結果排在前面。  沒(méi)有匹配程度的控制:比如有記錄中net出現5詞和出現1次的,結果是一樣的
 結果輸出  通過(guò)特別的算法,將最匹配度最高的頭100條結果輸出,結果集是緩沖式的小批量讀取的。  返回所有的結果集,在匹配條目非常多的時(shí)候(比如上萬(wàn)條)需要大量的內存存放這些臨時(shí)結果集。
 可定制性  通過(guò)不同的語(yǔ)言分析接口實(shí)現,可以方便的定制出符合應用需要的索引規則(包括對中文的支持)  沒(méi)有接口或接口復雜,無(wú)法定制
 結論  高負載的模糊查詢(xún)應用,需要負責的模糊查詢(xún)的規則,索引的資料量比較大  使用率低,模糊匹配規則簡(jiǎn)單或者需要模糊查詢(xún)的資料量少

全文檢索和數據庫應用最大的不同在于:讓最相關(guān)的頭100條結果滿(mǎn)足98%以上用戶(hù)的需求。

       Lucene的創(chuàng )新之處:

  大部分的搜索(數據庫)引擎都是用B樹(shù)結構來(lái)維護索引,索引的更新會(huì )導致大量的IO操作,Lucene在實(shí)現中,對此稍微有所改進(jìn):不是維護一個(gè)索引文件,而是在擴展索引的時(shí)候不斷創(chuàng )建新的索引文件,然后定期的把這些新的小索引文件合并到原先的大索引中(針對不同的更新策略,批次的大小可以調整),這樣在不影響檢索的效率的前提下,提高了索引的效率。

Lucene和其他一些全文檢索系統/應用的比較:

 

   Lucene  其他開(kāi)源全文檢索系統
 增量索引和批量索引  可以進(jìn)行增量的索引(Append),可以對于大量數據進(jìn)行批量索引,并且接口設計用于優(yōu)化批量索引和小批量的增量索引。  很多系統只支持批量的索引,有時(shí)數據源有一點(diǎn)增加也需要重建索引。
 數據源  Lucene沒(méi)有定義具體的數據源,而是一個(gè)文檔的結構,因此可以非常靈活的適應各種應用(只要前端有合適的轉換器把數據源轉換成相應結構)。  很多系統只針對網(wǎng)頁(yè),缺乏其他格式文檔的靈活性。
 索引內容抓取  Lucene的文檔是由多個(gè)字段組成的,甚至可以控制那些字段需要進(jìn)行索引,那些字段不需要索引,近一步索引的字段也分為需要分詞和不需要分詞的類(lèi)型:
   需要進(jìn)行分詞的索引,比如:標題,文章內容字段
   不需要進(jìn)行分詞的索引,比如:作者/日期字段
 缺乏通用性,往往將文檔整個(gè)索引了
 語(yǔ)言分析  通過(guò)語(yǔ)言分析器的不同擴展實(shí)現:
可以過(guò)濾掉不需要的詞:an the of 等,
西文語(yǔ)法分析:將jumps jumped jumper都歸結成jump進(jìn)行索引/檢索
非英文支持:對亞洲語(yǔ)言,阿拉伯語(yǔ)言的索引支持
 缺乏通用接口實(shí)現
 查詢(xún)分析  通過(guò)查詢(xún)分析接口的實(shí)現,可以定制自己的查詢(xún)語(yǔ)法規則:
比如: 多個(gè)關(guān)鍵詞之間的 + - and or關(guān)系等
 功能較強大
 并發(fā)訪(fǎng)問(wèn)  能夠支持多用戶(hù)的使用  功能較強大

四、關(guān)于亞洲語(yǔ)言的的切分詞問(wèn)題(Word Segment)
  對于中文來(lái)說(shuō),全文索引首先還要解決一個(gè)語(yǔ)言分析的問(wèn)題,對于英文來(lái)說(shuō),語(yǔ)句中單詞之間是天然通過(guò)空格分開(kāi)的,但亞洲語(yǔ)言的中日韓文語(yǔ)句中的字是一個(gè)字挨一個(gè),所有,首先要把語(yǔ)句中按“詞”進(jìn)行索引的話(huà),這個(gè)詞如何切分出來(lái)就是一個(gè)很大的問(wèn)題。
  首先,肯定不能用單個(gè)字符作(si-gram)為索引單元,否則查“上?!睍r(shí),不能讓含有“海上”也匹配。
但一句話(huà):“北京天安門(mén)”,計算機如何按照中文的語(yǔ)言習慣進(jìn)行切分呢?
  “北京 天安門(mén)” 還是“北 京 天安門(mén)”?讓計算機能夠按照語(yǔ)言習慣進(jìn)行切分,往往需要機器有一個(gè)比較豐富的詞庫才能夠比較準確的識別出語(yǔ)句中的單詞。
  另外一個(gè)解決的辦法是采用自動(dòng)切分算法:將單詞按照2元語(yǔ)法(bigram)方式切分出來(lái),比如:
    "北京天安門(mén)" ==> "北京 京天 天安 安門(mén)"。
這樣,在查詢(xún)的時(shí)候,無(wú)論是查詢(xún)"北京" 還是查詢(xún)"天安門(mén)",將查詢(xún)詞組按同樣的規則進(jìn)行切分:"北京","天安安門(mén)",多個(gè)關(guān)鍵詞之間按與"and"的關(guān)系組合,同樣能夠正確地映射到相應的索引中。這種方式對于其他亞洲語(yǔ)言:韓文,日文都是通用的。
  基于自動(dòng)切分的最大優(yōu)點(diǎn)是沒(méi)有詞表維護成本,實(shí)現簡(jiǎn)單,缺點(diǎn)是索引效率低,但對于中小型應用來(lái)說(shuō),基于2元語(yǔ)法的切分還是夠用的?;?元切分后的索引一般大小和源文件差不多,而對于英文,索引文件一般只有原文件的30%-40%不同。

   自動(dòng)切分  詞表切分
 實(shí)現  實(shí)現非常簡(jiǎn)單  實(shí)現復雜
 查詢(xún)  增加了查詢(xún)分析的復雜程度  適于實(shí)現比較復雜的查詢(xún)語(yǔ)法規則
 存儲效率  索引冗余大,索引幾乎和原文一樣大  索引效率高,為原文大小的30%左右
 維護成本  無(wú)詞表維護成本  詞表維護成本非常高:中日韓等語(yǔ)言需要分別維護。
還需要包括詞頻統計等內容
 適用領(lǐng)域  嵌入式系統:運行環(huán)境資源有限
分布式系統:無(wú)詞表同步問(wèn)題
多語(yǔ)言環(huán)境:無(wú)詞表維護成本
 對查詢(xún)和存儲效率要求高的專(zhuān)業(yè)搜索引擎

目前比較大的搜索引擎的語(yǔ)言分析算法一般是基于以上2個(gè)機制的結合。

 

 

 

五、Lucene的結構框架:
  注意:Lucene中的一些比較復雜的詞法分析是用JavaCC生成的(JavaCC:JavaCompilerCompiler,純Java的詞法分析生成器),所以如果從源代碼編譯或需要修改其中的QueryParser、定制自己的詞法分析器,還需要從https://javacc.dev.java.net/下載javacc。
  lucene的組成結構:對于外部應用來(lái)說(shuō)索引模塊(index)和檢索模塊(search)是主要的外部應用入口。

 org.apache.Lucene.search/  搜索入口
 org.apache.Lucene.index/  索引入口
 org.apache.Lucene.analysis/  語(yǔ)言分析器
 org.apache.Lucene.queryParser/ 查詢(xún)分析器
 org.apache.Lucene.document/  存儲結構
 org.apache.Lucene.store/   底層IO/存儲結構
 org.apache.Lucene.util/  一些公用的數據結構

六、從Lucene學(xué)到更多:
  Luene的確是一個(gè)面對對象設計的典范。如果你要學(xué)習面向對象編程,你要學(xué)習java,建議你學(xué)習lucene吧,玩一個(gè)實(shí)實(shí)在在的項目,而且是有名的基礎項目,在無(wú)形之中你既可以學(xué)習這個(gè)項目的使用,又可以學(xué)習java語(yǔ)法,又可以學(xué)習大師們的代碼技巧,還可以以后為lucene做點(diǎn)什么,真的你可以一舉多得?。?!何樂(lè )不為呢?!

  1. 所有的問(wèn)題都通過(guò)一個(gè)額外抽象層來(lái)方便以后的擴展和重用:你可以通過(guò)重新實(shí)現來(lái)達到自己的目的,而對其他模塊而不需要;
  2. 簡(jiǎn)單的應用入口Searcher, Indexer,并調用底層一系列組件協(xié)同的完成搜索任務(wù);
  3. 所有的對象的任務(wù)都非常專(zhuān)一:比如搜索過(guò)程:QueryParser分析將查詢(xún)語(yǔ)句轉換成一系列的精確查詢(xún)的組合(Query),通過(guò)底層的索引讀取結構 IndexReader進(jìn)行索引的讀取,并用相應的打分器給搜索結果進(jìn)行打分/排序等。所有的功能模塊原子化程度非常高,因此可以通過(guò)重新實(shí)現而不需要修改其他模塊。 
  4. 除了靈活的應用接口設計,Lucene還提供了一些適合大多數應用的語(yǔ)言分析器實(shí)現(SimpleAnalyser,StandardAnalyser),這也是新用戶(hù)能夠很快上手的重要原因之一。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
全文檢索工具包Lncene工作原理
宜信技術(shù)實(shí)踐|海量數據搜索
有關(guān)Lucene一些讀者常問(wèn)的
Lucene3.0詳解
一步一步學(xué)lucene——(第一步:概念篇)
竹筍炒肉: Lucene學(xué)習筆記(2)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久