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

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

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

開(kāi)通VIP
關(guān)于lucene 結構及內層的研究(一)

lucene 東西太多,一點(diǎn)一點(diǎn)來(lái),先談下本人對lucene里Query的分析。其他的會(huì )在后續作品中發(fā)布。如有不足或者我理解上的錯誤,請email給我,我好及時(shí)改正,更新。

QuerySearch的基本單元,實(shí)現各種搜索的方法,下面我簡(jiǎn)單的列一下他們的作用,

TermQuery,

最基本的Query,TermQuery(new Term(Str filed, Str Text));就可以構造, TermQuery把查詢(xún)條件視為一個(gè)key, 要求和查詢(xún)內容完全匹配,比如Field.Keyword類(lèi)型就可以使用TermQuery。

 PhraseQuery

 PhraseQuery

表示可用于非嚴格語(yǔ)句的查詢(xún),匹配包含的指定連續Term, 比如"one five"可以匹配"one two three four five", PhraseQuery提供了一個(gè)重要的setSlop()參數, 這個(gè)參數主要用于設置phrase query中詞之間的允許間隔數目,在默認情況下slop的值是0, 就相當于TermQuery的精確匹配, 通過(guò)設置slop參數(比如"one five"匹配"one two three four five"就需要slop=3,如果slop=2就無(wú)法得到結果。這里我們可以認為slope是單詞移動(dòng)得次數,可以左移或者右移。這里特別提醒,PhraseQuery不保證前后單詞的次序,在上面的例子中,"two one"就需要2個(gè)slop,也就是認為one 向左邊移動(dòng)2, 就是能夠匹配的”one two”如果是“five three one” 就需要slope=6才能匹配。還有一點(diǎn)要注意,就是如果碰到stopword,(會(huì )在stopAnalyzer中細說(shuō)),則stopword不用把slop算在內。

 BooleanQuery

 BooleanQuery

是一個(gè)組合的Query, 可以把各種Query添加進(jìn)去(主要是TernQueryPhraseQuery)并標明他們的邏輯關(guān)系,添加條件用public void add(Query query, boolean required, boolean prohibited)方法, 后兩個(gè)boolean變量分別表示不匹配子Query將不匹配booleanQuery和匹配子Query將不匹配booleanQuery。估計類(lèi)似google的(+,-)功能。這兩個(gè)參數不允許同時(shí)為true, 否則報錯。但兩個(gè)參數可以都為false,而且必須保證匹配至少一個(gè)子query才能用來(lái)匹配booleanQuery。 一個(gè)BooleanQuery中可以添加多個(gè)Query, 但不能超過(guò)setMaxClauseCount(int)的值(默認1024個(gè)),否則拋出TooManyClauses錯誤.

RangeQuery

RangeQuery

RangeQuery表示一個(gè)范圍的搜索條件,RangeQuery query = new RangeQuery(begin, end, included);最后一個(gè)boolean值表示是否包含邊界條件本身, beginend必須滿(mǎn)足至少有一個(gè)不為null及兩者都在同一個(gè)field. 這里的Range是以StringcompareTo (Str)進(jìn)行比較。所以熟悉j2se的應該很容易確定Range的范圍。

 PrefixQuery

 PrefixQuery

表示匹配是以指定字符串開(kāi)頭的匹配查詢(xún), 可以用于Keyword形式的查詢(xún)。一般的在suggestion里對于single word可以使用的,也可用于查詢(xún)網(wǎng)絡(luò )結構目錄樹(shù)的數目。

 PhrasePrefixQuery

 PhrasePrefixQuery

由于PhraseQuery不能很靈活的適應各種的phrase的匹配。比如要搜索”Sony Cam*”, 先可以把add(Term)Sony放在Term.,然后把使用IndexReader.Terms(Term)匹配以Cam為前綴的詞,最后使用PhrasePrefixQuery.add(Term[] terms)把兩者加在Query中。這里slopephraseQuery雷同,仍然起著(zhù)對phrase的定位作用,addTerm(Term[] terms)內使用ArrayList來(lái)保存Term數據,而Phrase使用的是Vector.

WildcardQuery

WildcardQuery

WildcardQueryFuzzyQuery是繼承MultiTermQuery的,這是他們區別的其他的幾種常規Query. Query包含自身全部的匹配,TermFilteredTermEnum提供,而MultiQuery則是不完全自身的匹配。Term的提供者也不同。WildcardQuery主要使用?*來(lái)表示一個(gè)或多個(gè)字母的匹配,值得注意的是,wildcard,empty對于?*也是匹配的,Query的開(kāi)頭不允許用使用?*.

 FuzzyQuery

 FuzzyQuery

能模糊匹配英文單詞,這個(gè)功能非常有用,大小寫(xiě)敏感??梢允褂闷錁嬙旆椒?/span>FuzzyQuery(Term term, float minimumSimilarity, int prefixLength)方法,還提供2種默認的0.5相似度,和0的前綴狀態(tài)。相似度比較時(shí)要減去非比較的前綴。然后再比。例如,”soni”匹配”sony”設置相似度前綴為0,則相似度為75%,如果前綴為1,則相似度為66.7%.只要高于最小相似度,便能找到。如果詞長(cháng)度不一致,則以Query減去前綴的為準,例如設前綴為1,用”della”來(lái)匹配”dell”,相似度75%, 如果”del”來(lái)匹配”dell”則相似度只有50%

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
java搜索引擎lucene學(xué)習筆記 --水木尤寒的博客
Lucene(3.5) 的幾個(gè)查詢(xún)
Lucene 4 和 Solr 4 學(xué)習筆記(3)
使用 Apache Lucene 搜索文本 - - JavaEye技術(shù)網(wǎng)站
lucene、lucene.NET詳細使用與優(yōu)化詳解
Lucene學(xué)習筆記
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

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