2011-03-11 68 views
1

我是Solr的新手。請幫助我以下查詢:Solr請求處理程序和查詢解析器

  1. 請求處理程序和查詢解析器之間的區別是什麼?
    我想那就是當一個查詢Solr中通過URL發送,首先查詢使用查詢分析器進行分析。然後請求處理程序接受解析的查詢並根據請求處理程序參數搜索並顯示響應。它是否正確?

  2. 什麼是Solr中默認的查詢分析器和默認請求處理程序?

  3. 參數DEFTYPE用於指定解析器和Qt的請求處理程序吧? 我寫此查詢
    select?q=features:power%20features:latency&deftype=dismax 其工作,但select?q=features:power%20features:latency&qt=dismax沒有。

這裏是我的requestHandler

<requestHandler name="dismax" class="solr.SearchHandler"> 
<lst name="defaults"> 
    <str name="defType">dismax< /str> 
    <str name="echoParams">explicit< /str> 
    <float name="tie">0.01< /float> 
    <str name="qf">text^0.5 features^1.0 name^1.2 sku^1.5 id^10.0 manu^1.1 cat^1.4< /str> 
    <str name="pf">text^0.2 features^1.1 name^1.5 manu^1.4 manu_exact^1.9< /str> 
    <str name="bf">popularity^0.5 recip(price,1,1000,1000)^0.3< /str> 
    <str name="fl">id,name,price,score< /str> 
    <str name="mm">2<-1 5<-2 6<90%< /str> 
    <int name="ps">100< /int> 
    <str name="q.alt">*:*< /str> 
<!-- example highlighter config, enable per-query with hl=true 
    -- > 
    < str name="hl.fl">text features name</str> 
<!-- for this field, we want no fragmenting, just highlighting 
    -- > 
    < str name="f.name.hl.fragsize">0< /str> 
<!-- instructs Solr to return the field itself if no query terms are 
      found 
    -- > 
    <str name="f.name.hl.alternateField">name< /str> 
    <str name="f.text.hl.fragmenter">regex< /str> 
<!-- defined below 
    --> 
    < /lst> 
</requestHandler> 

回答

3

默認請求處理程序是solrconfig.xml中的一個默認= 「真」 參數(SearchHandler,如果你沒有改變這一點)。

請求處理程序處理的請求,所以它是爲每個請求,這意味着請求處理程序使用/起點調用查詢解析器(通過URL或默認之一中指定的一個)作爲它的第一個步驟。

您想得到:
1.文檔中帶有「功耗延遲」這個短語?
2.或文檔中的任何位置都包含兩個術語?
3.或者其中任一條款的文檔?

嘗試這樣的:
1.選擇Q =特徵:? 「功率延遲」 & QT = dismax
2.選擇Q =特徵:功率+功能:延遲& QT = dismax &毫米= 2
? 3.選擇q =特性:電源+功能:延遲& QT = dismax &毫米= 1

更多關於DisMaxQParserPlugin信息。

+0

但爲什麼心不是選擇Q =特點:功率%20features:延遲和QT = dismax working.My Solr的配置文件具有毫米= 2作爲其默認value.And我有6個文件在2個文件功率和等待時間的休息4.他們都沒有力量和延遲。 因此,deftype = dismax它給了我6個文檔是正確的。但是當我使用qt = dismax時,它不顯示任何result.mm = 2默認情況下!!!!!! deftype和qt有什麼區別? – Nakkala 2011-03-16 06:23:21

+0

還有一個問題。當我們能夠同時給deftype = dismax和qt = dismax時,這意味着dismax是解析器和請求處理程序。是嗎? 我可以知道Solr中的其他解析器還有什麼請求處理程序。 – Nakkala 2011-03-16 06:27:41

+0

請從solrconfig.xml發佈您的。 – 2011-03-16 11:24:49

相關問題