solr searching 過程解析

翻譯自 Apache Solr Reference Guide 

 

solr提供了一個十分靈活,可拓展的搜索特性,當我們發送一個請求的時候,一個search query 被一個叫做requst handler處理,solr提供許多類型的request handler,有的是爲了處理搜索請求的,還有一些設計成幫助管理請求的。

 

能夠處理搜索請求的request handler叫做 query parser,不同的query parser支持不同的特性,solr包含一個標準的(LUCENE)和 拓展的DISMAX, 標準的能獲得更好的準確性,DISMAX容錯能力比較強。

 

一般而言,一個query parser的輸入包含如下幾個部分:

搜索字符串

一些參數微調field,或者剔除一些無關內容

一些參數控制responce的展現形式

 

這裏有一個facet的概念,facet可以看成是一個目錄,相當於組織數據的一個維度,在每一個目錄中,facet constrain表示solr彙報相關的搜索結果,faceting方便用戶查看比如在一些電影網站查看搜索結果。

 

solr的一個組件叫做 response writer組織返回的展現,比如XML response writer  和  JSON response writer.

 

相關性:

相關性是衡量一個結果對於這個用戶的滿足程度。

相關性的好壞取決於不同的環境,比如一個搜索服務,裏面有天氣的數據,一個大學的研究者試圖研究氣象的變化,一個農民傾向於知道什麼時候是冬天的第一場雪,一個大學的學生更加傾向於什麼時候放假,不同動機的用戶自然相關性也會差別非常大。

如何全面的評判一個搜索的相關性,在不同的應用會有巨大差距,比如搜一張票據,和找一個蛋糕的配方會有巨大差距,所以在配置solr的時候,你得權衡好及時性和易用性。

關於相關性有兩個概念:

 

Precision 準確率:返回的結果中相關結果的百分比

 Recall 召回率:返回的相關結果佔有所有相關結果的百分比

用好這兩個概念,有可能量化相關性的結果,一個牛逼的系統能夠有100%的召回率和100%的準確率,返回給系統的結果全是相關的,沒有其他亂七八糟的,但是在真實的系統中,我們是在一定數量的結果中討論這件事,比如說10個結果。

 

以下幾點可以考慮在配置相關性中:

1. 使用用戶的需求,比如要求易用,極快的響應速度,對信息準確性要求高

2. 考慮category的使用

3. 文檔內在的相關性,一個官方的或者FAQ的結果應該排在上面。

4.  考慮文檔的年齡,是否需要越新越靠前

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章