Solr基本配置(三)——Searcher

<query />
  在標(biāo)簽<query/>里面可以進行一些優(yōu)化搜索的配置。在Solr的查詢過程中,運用到一個叫searcher的組件,在一個特定的時間只能有一個“active”的searcher。這個active searcher在Lucene索引中有一個只讀的映射。當(dāng)新的document加入到Solr的時候,當(dāng)前的searcher在搜索結(jié)果中是看不到這個新加的document的。那么問題就來了:怎么樣才能讓新添加的文件出現(xiàn)在搜索結(jié)果中?一個解決這個問題的辦法就是關(guān)閉當(dāng)前的searcher并對新的索引文件打開一個新的searcher。
  在admin界面中,查看collection1的Plugins/Status,點擊core:
  


第一行展示的就是當(dāng)前的Searcher,當(dāng)我們重新對文件建立索引,在example的exampledocs下運用:
  Java -jar post.jar *.xml:
  刷新界面: 


可以看到Searcher改變了。這是因為post.jar提交個commit指令。從上面的示例我們知道commit指令可以創(chuàng)建一個新的searcher,使得可以檢索到最新的文件,當(dāng)新searcher創(chuàng)建的時候要先銷毀舊的searcher。這時候如果還有基于舊searcher的查詢在進行中,Solr就要等待所有進行中的查詢結(jié)束。然后,所有基于當(dāng)前searcher的cached對象都要失效。因為之前建立起來的cache都失效了,所以建立一個新的searcher可能是很耗時的。假設(shè)一個用戶在返回的結(jié)果中進行翻頁操作,當(dāng)用戶從第二頁翻到第三頁的時候一個新的searcher打開了,此時用戶就會一直等待第三頁的加載,但是這時候之前加載的document都已經(jīng)失效,所以就會讓用戶感覺到加載很慢。
  對于上述問題,Solr提供了一系列的工具,Solr在建立一個searcher的時候有稱為warming的概念,即讓新的searcher在后臺建立,并讓當(dāng)前的searcher繼續(xù)工作直到后臺的searcher完全warm。
  
Warming a new searcher
  Solr運用這個策略來使得在一段時間內(nèi)還是返回舊的結(jié)果,而避免用戶因為新建searcher而降低查詢的性能。有兩種warming的策略:autowarming new caches from the old caches(從舊的cache中創(chuàng)建新的cache)和execute cache-warming queries(重新執(zhí)行一些queries來填充新的cache)。
  Cache-warming queries是一種preconfigured query來構(gòu)建新searcher的cache。

上面的配置定義了一系列的queries當(dāng)newSearcher事件出現(xiàn)的時候就執(zhí)行(如在commit之后)。

<useColdSearcher/>
  如果為false,那么Solr就會阻塞直到warming searcher完成所有的warming queries。
  <useColdSearcher>false</useColdSearcher>
  如果為true,Solr會馬上注冊一個warming searcher。

<maxWarmingSearchers>
  定義在后臺可以同時warming的最大searcher數(shù)量。默認值為2.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 嚴(yán)格來說,我這篇內(nèi)容,主要是根據(jù)Solr in Action關(guān)于配置的說明,以及參考Solr的wiki寫的算是讀書...
    堯字節(jié)閱讀 3,422評論 1 3
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,268評論 6 342
  • 兩年前用過solr5.1版本的,當(dāng)時只是簡單入個門,拿來在項目里建個全文索引,然后再query,其他什么也沒做,還...
    Coselding閱讀 3,247評論 3 22
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,545評論 19 139
  • Solr提供了很多內(nèi)置的緩存機制來提高查詢的性能,首先回顧一下與緩存相關(guān)的基礎(chǔ)知識: 緩沖區(qū)大小及置換規(guī)則 對于查...
    尚亦汐閱讀 1,550評論 0 1

友情鏈接更多精彩內(nèi)容