W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
Solr 為搜索提供了豐富而靈活的功能。為了理解這種靈活性的程度,從對(duì) Solr 搜索所涉及的步驟和組件的概述開(kāi)始是很有幫助的。
當(dāng)用戶在 Solr 中運(yùn)行搜索時(shí),搜索查詢由一個(gè)請(qǐng)求處理程序處理。請(qǐng)求處理程序是一個(gè) Solr 插件,用于定義在 Solr 處理請(qǐng)求時(shí)要使用的邏輯。Solr 支持各種請(qǐng)求處理程序。有些是為處理搜索查詢而設(shè)計(jì)的,有些則是用來(lái)管理索引復(fù)制等任務(wù)的。
搜索應(yīng)用程序默認(rèn)選擇特定的請(qǐng)求處理程序。此外,還可以將應(yīng)用程序配置為允許用戶以不同的請(qǐng)求處理程序的首選項(xiàng)替代默認(rèn)選擇。
為了處理搜索查詢,請(qǐng)求處理程序調(diào)用查詢解析器,該解析器解釋查詢的術(shù)語(yǔ)和參數(shù)。不同的查詢解析器支持不同的語(yǔ)法。Solr 默認(rèn)的查詢解析器被稱為標(biāo)準(zhǔn)查詢解析器,或者更常見(jiàn)的就是 “l(fā)ucene” 查詢解析器。Solr 還包括 DisMax 查詢解析器和擴(kuò)展的 DisMax(eDisMax)查詢解析器。標(biāo)準(zhǔn)查詢解析器的語(yǔ)法允許在搜索中更加精確,但是 DisMax 查詢解析器更能容忍錯(cuò)誤。DisMax 查詢解析器旨在提供類似于流行的搜索引擎(如 Google)的體驗(yàn),這些搜索引擎很少向用戶顯示語(yǔ)法錯(cuò)誤。擴(kuò)展的 DisMax 查詢解析器是 DisMax 的改進(jìn)版本,它處理完整的 Lucene 查詢語(yǔ)法,同時(shí)仍然容忍語(yǔ)法錯(cuò)誤。它還包括幾個(gè)附加功能。
另外,所有的查詢解析器都包含通用的查詢參數(shù)。
查詢解析器的輸入可以包括:
搜索參數(shù)也可以指定一個(gè)過(guò)濾器查詢。作為搜索響應(yīng)的一部分,過(guò)濾器查詢針對(duì)整個(gè)索引運(yùn)行查詢并緩存結(jié)果。由于 Solr 為過(guò)濾器查詢分配了單獨(dú)的緩存,所以過(guò)濾器查詢的戰(zhàn)略使用可以提高搜索性能。(盡管名稱相似,但查詢過(guò)濾器與分析過(guò)濾器無(wú)關(guān)。過(guò)濾器查詢?cè)谒阉鲿r(shí)對(duì)索引中已有的數(shù)據(jù)執(zhí)行查詢,而分析過(guò)濾器(如Tokenizers)根據(jù)指定的規(guī)則解析用于索引的內(nèi)容。
搜索查詢可以請(qǐng)求在搜索響應(yīng)中突出顯示某些術(shù)語(yǔ);也就是說(shuō),選定的術(shù)語(yǔ)將顯示在彩色框中,以便在搜索結(jié)果的屏幕上“跳出”。突出顯示可以使搜索中返回的長(zhǎng)文檔中的相關(guān)段落更容易找到。Solr 支持多項(xiàng)高亮顯示。Solr 包含一組豐富的搜索參數(shù),用于控制如何突出顯示術(shù)語(yǔ)。
搜索響應(yīng)也可以配置為包含以突出顯示的文本為特色的片段(文檔摘錄)。流行的搜索引擎,如谷歌和 Yahoo ! 在搜索結(jié)果中返回代碼片段:3-4行文本,提供搜索結(jié)果的描述。
為幫助用戶找到所需的內(nèi)容,Solr 支持兩種特殊的搜索結(jié)果分組方式,以幫助進(jìn)一步探索:faceting 和集群。
faceting 是將搜索結(jié)果安排到不同的類別(基于索引項(xiàng))。在每個(gè)類別中,Solr 報(bào)告了相關(guān)術(shù)語(yǔ)的命中次數(shù),稱為 facet 約束。faceting 可讓用戶輕松瀏覽網(wǎng)站(如電影網(wǎng)站和產(chǎn)品評(píng)論網(wǎng)站)上的搜索結(jié)果,這些網(wǎng)站的分類和許多項(xiàng)目都屬于一個(gè)類別。
下面的屏幕截圖顯示了 CNET 網(wǎng)站(CBS Interactive Inc.)(這是第一個(gè)使用 Solr 的站點(diǎn))的一個(gè)示例。
faceting 使用在索引搜索應(yīng)用程序時(shí)定義的字段。在上面的示例中,這些字段包括對(duì)描述數(shù)碼相機(jī)有用的信息類別:制造商、分辨率和縮放范圍。
集群組搜索結(jié)果是通過(guò)執(zhí)行搜索時(shí)發(fā)現(xiàn)的相似性而非搜索內(nèi)容時(shí)得到的。集群的結(jié)果往往缺乏在 faceting 搜索結(jié)果中找到的整齊的層次結(jié)構(gòu),但集群仍然是有用的。它可以揭示搜索結(jié)果之間意想不到的共同點(diǎn),它可以幫助用戶排除與他們真正搜索的內(nèi)容無(wú)關(guān)的內(nèi)容。
Solr 還支持名為 MoreLikeThis 的功能,該功能使用戶能夠提交新的查詢,這些查詢專注于在以前的查詢中返回的特定術(shù)語(yǔ)。MoreLikeThis 查詢可以利用 faceting 或集群來(lái)為用戶提供額外的幫助。
稱為響應(yīng)書(shū)寫(xiě)器(response writer)的 Solr 組件管理查詢響應(yīng)的最終呈現(xiàn)。Solr 包含各種響應(yīng)編寫(xiě)器,包括 XML 響應(yīng)編寫(xiě)器和 JSON 響應(yīng)編寫(xiě)器。
下圖總結(jié)了搜索過(guò)程的一些關(guān)鍵要素。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: