<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    laoding
    本來(lái)我以為,隱身了別人就找不到我,沒(méi)有用的,像我這樣拉風(fēng)的男人,無(wú)論走到哪里,都像在黑暗中的螢火蟲(chóng)一樣,那樣的鮮明,那樣的出眾。我那憂(yōu)郁的眼神,稀疏的胡茬,那微微隆起的將軍肚和親切的笑容......都深深吸引了眾人......
    posts - 0,  comments - 37,  trackbacks - 0
    原文來(lái)自:http://liyu2000.nease.net/article/Lucene/queryparsersyntax.htm

    緒論

    Lucene提供了方便您創(chuàng)建自建查詢(xún)的API,也通過(guò)QueryParser提供了強(qiáng)大的查詢(xún)語(yǔ)言。

    本文講述Lucene的查詢(xún)語(yǔ)句解析器支持的語(yǔ)法,Lucene的查詢(xún)語(yǔ)句解析器是使用JavaCC工具生成的詞法解析器,它將查詢(xún)字串解析為L(zhǎng)ucene Query對(duì)象。

    項(xiàng)(Term

    一條搜索語(yǔ)句被拆分為一些項(xiàng)(term)和操作符(operator)。項(xiàng)有兩種類(lèi)型:?jiǎn)为?dú)項(xiàng)和短語(yǔ)。

    單獨(dú)項(xiàng)就是一個(gè)單獨(dú)的單詞,例如"test" , "hello"。

    短語(yǔ)是一組被雙引號(hào)包圍的單詞,例如"hello dolly"。

    多個(gè)項(xiàng)可以用布爾操作符連接起來(lái)形成復(fù)雜的查詢(xún)語(yǔ)句(接下來(lái)您就會(huì)看到)。

    注意:Analyzer建立索引時(shí)使用的解析器和解析單獨(dú)項(xiàng)和短語(yǔ)時(shí)的解析器相同,因此選擇一個(gè)不會(huì)受查詢(xún)語(yǔ)句干擾的Analyzer非常重要。

    域(Field

    Lucene支持域。您可以指定在某一個(gè)域中搜索,或者就使用默認(rèn)域。域名及默認(rèn)域是具體索引器實(shí)現(xiàn)決定的。

    您可以這樣搜索域:域名+":"+搜索的項(xiàng)名。

    舉個(gè)例子,假設(shè)某一個(gè)Lucene索引包含兩個(gè)域,title和text,text是默認(rèn)域。如果您想查找標(biāo)題為"The Right Way"且含有"don't go this way"的文章,您可以輸入:

    title:"The Right Way" AND text:go

    或者

    title:"Do it right" AND right

    因?yàn)閠ext是默認(rèn)域,所以這個(gè)域名可以不行。

    注意:域名只對(duì)緊接于其后的項(xiàng)生效,所以

    title:Do it right

    只有"Do"屬于title域。"it"和"right"仍將在默認(rèn)域中搜索(這里是text域)。

    項(xiàng)修飾符(Term Modifiers

    Lucene支持項(xiàng)修飾符以支持更寬范圍的搜索選項(xiàng)。

    用通配符搜索

    Lucene支持單個(gè)與多個(gè)字符的通配搜索。

    使用符號(hào)"?"表示單個(gè)任意字符的通配。

    使用符號(hào)"*"表示多個(gè)任意字符的通配。

    單個(gè)任意字符匹配的是所有可能單個(gè)字符。例如,搜索"text或者"test",可以這樣:

    te?t

    多個(gè)任意字符匹配的是0個(gè)及更多個(gè)可能字符。例如,搜索test, tests 或者 tester,可以這樣:

    test*

    您也可以在字符竄中間使用多個(gè)任意字符通配符。

    te*t

    注意:您不能在搜索的項(xiàng)開(kāi)始使用*或者?符號(hào)。

    模糊查詢(xún)

    Lucene支持基于Levenshtein Distance與Edit Distance算法的模糊搜索。要使用模糊搜索只需要在單獨(dú)項(xiàng)的最后加上符號(hào)"~"。例如搜索拼寫(xiě)類(lèi)似于"roam"的項(xiàng)這樣寫(xiě):

    roam~

    這次搜索將找到形如foam和roams的單詞。

    注意:使用模糊查詢(xún)將自動(dòng)得到增量因子(boost factor)為0.2的搜索結(jié)果.

    鄰近搜索(Proximity Searches)

    Lucene還支持查找相隔一定距離的單詞。鄰近搜索是在短語(yǔ)最后加上符號(hào)"~"。例如在文檔中搜索相隔10個(gè)單詞的"apache"和"jakarta",這樣寫(xiě):

    "jakarta apache"~10

    Boosting a Term

    Lucene provides the relevance level of matching documents based on the terms found. To boost a term use the caret, "^", symbol with a boost factor (a number) at the end of the term you are searching. The higher the boost factor, the more relevant the term will be.

    Lucene可以設(shè)置在搜索時(shí)匹配項(xiàng)的相似度。在項(xiàng)的最后加上符號(hào)"^"緊接一個(gè)數(shù)字(增量值),表示搜索時(shí)的相似度。增量值越高,搜索到的項(xiàng)相關(guān)度越好。

    Boosting allows you to control the relevance of a document by boosting its term. For example, if you are searching for jakarta apache and you want the term "jakarta" to be more relevant boost it using the ^ symbol along with the boost factor next to the term. You would type:

    通過(guò)增量一個(gè)項(xiàng)可以控制搜索文檔時(shí)的相關(guān)度。例如如果您要搜索jakarta apache,同時(shí)您想讓"jakarta"的相關(guān)度更加好,那么在其后加上"^"符號(hào)和增量值,也就是您輸入:

    jakarta^4 apache

    This will make documents with the term jakarta appear more relevant. You can also boost Phrase Terms as in the example:

    這將使得生成的doucment盡可能與jakarta相關(guān)度高。您也可以增量短語(yǔ),象以下這個(gè)例子一樣:

    "jakarta apache"^4 "jakarta lucene"

    By default, the boost factor is 1. Although, the boost factor must be positive, it can be less than 1 (i.e. .2)

    默認(rèn)情況下,增量值是1。增量值也可以小于1(例如0.2),但必須是有效的。

    布爾操作符

    布爾操作符可將項(xiàng)通過(guò)邏輯操作連接起來(lái)。Lucene支持AND, "+", OR, NOT 和 "-"這些操作符。(注意:布爾操作符必須全部大寫(xiě))

    OR

    OR操作符是默認(rèn)的連接操作符。這意味著如果兩個(gè)項(xiàng)之間沒(méi)有布爾操作符,就是使用OR操作符。OR操作符連接兩個(gè)項(xiàng),意味著查找含有任意項(xiàng)的文檔。這與集合并運(yùn)算相同。符號(hào)||可以代替符號(hào)OR。

    搜索含有"jakarta apache" 或者 "jakarta"的文檔,可以使用這樣的查詢(xún):

    "jakarta apache" jakarta

    或者

    "jakarta apache" OR jakarta

    AND

    AND操作符匹配的是兩項(xiàng)同時(shí)出現(xiàn)的文檔。這個(gè)與集合交操作相等。符號(hào)&&可以代替符號(hào)AND。

    搜索同時(shí)含有"jakarta apache" 與 "jakarta lucene"的文檔,使用查詢(xún):

    "jakarta apache" AND "jakarta lucene"

    +

    "+"操作符或者稱(chēng)為存在操作符,要求符號(hào)"+"后的項(xiàng)必須在文檔相應(yīng)的域中存在。

    搜索必須含有"jakarta",可能含有"lucene"的文檔,使用查詢(xún):

    +jakarta apache

    NOT

    NOT操作符排除那些含有NOT符號(hào)后面項(xiàng)的文檔。這和集合的差運(yùn)算相同。符號(hào)!可以代替符號(hào)NOT。

    搜索含有"jakarta apache",但是不含有"jakarta lucene"的文檔,使用查詢(xún):

    "jakarta apache" NOT "jakarta lucene"

    注意:NOT操作符不能單獨(dú)與項(xiàng)使用構(gòu)成查詢(xún)。例如,以下的查詢(xún)查不到任何結(jié)果:

    NOT "jakarta apache"

    -

    "-"操作符或者禁止操作符排除含有"-"后面的相似項(xiàng)的文檔。

    搜索含有"jakarta apache",但不是"jakarta lucene",使用查詢(xún):

    "jakarta apache" -"jakarta lucene"

    分組(Grouping

    Lucene支持使用圓括號(hào)來(lái)組合字句形成子查詢(xún)。這對(duì)于想控制查詢(xún)布爾邏輯的人十分有用。

    搜索含有"jakarta"或者"apache",同時(shí)含有"website"的文檔,使用查詢(xún):

    (jakartaOR apache) AND website

    這樣就消除了歧義,保證website必須存在,jakarta和apache中之一也存在。

    轉(zhuǎn)義特殊字符(Escaping Special Characters

    Lucene支持轉(zhuǎn)義特殊字符,因?yàn)樘厥庾址遣樵?xún)語(yǔ)法用到的。現(xiàn)在,特殊字符包括

    + - && || ! ( ) { } [ ] ^ " ~ * ? : "

    轉(zhuǎn)義特殊字符只需在字符前加上符號(hào)",例如搜索(1+1):2,使用查詢(xún)

    "(1"+1")":2

    posted on 2008-10-31 18:07 老丁 閱讀(2034) 評(píng)論(1)  編輯  收藏 所屬分類(lèi): 搜索引擎 lucene

    FeedBack:
    # re: Lucene的查詢(xún)語(yǔ)法!(搜索引擎)
    2008-12-17 14:21 | soloman
    很好,學(xué)習(xí)了。  回復(fù)  更多評(píng)論
      
    本博客主為學(xué)習(xí)和復(fù)習(xí)之用,無(wú)關(guān)其他,想罵人的繞道
    Email:dkm123456@126.com
    大家一起交流進(jìn)步
    QQ:283582761


    <2008年12月>
    30123456
    78910111213
    14151617181920
    21222324252627
    28293031123
    45678910

    留言簿(4)

    我參與的團(tuán)隊(duì)

    文章分類(lèi)(50)

    文章檔案(48)

    相冊(cè)

    朋友

    搜索

    •  

    積分與排名

    • 積分 - 96453
    • 排名 - 600

    最新評(píng)論

    主站蜘蛛池模板: 思思久久99热免费精品6| 亚洲自偷自偷图片| 91嫩草亚洲精品| 999久久久免费精品国产| 久久亚洲国产成人精品性色| 一级毛片免费不卡| 亚洲精品tv久久久久久久久久| 国产精品免费αv视频| 91亚洲国产成人精品下载| 最新精品亚洲成a人在线观看| 久久99亚洲综合精品首页| 亚洲精品第一国产综合精品99| 亚洲精品动漫人成3d在线| 亚洲精品成人无码中文毛片不卡| 国产亚洲综合色就色| 亚洲国产精品自在线一区二区| 亚洲国产韩国一区二区| 自拍日韩亚洲一区在线| 蜜臀亚洲AV无码精品国产午夜.| 精品女同一区二区三区免费播放| 欧洲美女大片免费播放器视频| 亚洲免费日韩无码系列| 国产又黄又爽胸又大免费视频| 日韩电影免费在线观看中文字幕 | 亚洲国产精品一区二区三区久久| 亚洲色偷偷综合亚洲AV伊人| 国产精一品亚洲二区在线播放| 亚洲国产香蕉碰碰人人| 亚洲偷自精品三十六区| 在线观看亚洲视频| 日韩免费高清播放器| 91短视频免费在线观看| 国产高清在线精品免费软件| 中文字幕专区在线亚洲| 亚洲欧洲视频在线观看| 亚洲aⅴ无码专区在线观看春色| eeuss影院www天堂免费| 亚洲免费黄色网址| 国产福利免费在线观看| 久久精品7亚洲午夜a| 亚洲一区在线视频|