2011-03-11 42 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

相关问题