2011-03-11 6 views
1

Solr을 처음 사용했습니다. 다음 쿼리를 도와주세요 :Solr 요청 처리기 및 쿼리 구문 분석기

  1. 요청 처리기와 쿼리 구문 분석기의 차이점은 무엇입니까?
    솔라에서 URL을 통해 쿼리를 보내면 처음에는 쿼리 파서를 사용하여 쿼리가 구문 분석됩니다. 그런 다음 요청 처리기는 구문 분석 된 쿼리를 가져와 요청 처리기 매개 변수에 따라 응답을 검색하고 표시합니다. 이 올바른지?

  2. Solr의 기본 쿼리 구문 분석기 및 기본 요청 처리기 란 무엇입니까?

  3. 매개 변수 deftype은 요청 처리기에 대한 파서와 qt를 지정하는 데 사용됩니까? 이 쿼리를 작성했습니다
    select?q=features:power%20features:latency&deftype=dismax 작동하지만, select?q=features:power%20features:latency&qt=dismax 않습니다.

여기에 (당신이 있음을 변경하지 않은 경우, SearchHandler) 내 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 기본적 = "true"로 매개 변수를 사용하여 하나입니다.

요청 처리기는 요청을 처리하므로 모든 요청의 시작점입니다. 즉 요청 처리기는 첫 번째 단계로 요청 구문 분석기 (URL 또는 기본값으로 지정된 쿼리 파서)를 사용하거나 호출합니다.

받기를 원한다 :
1. "power latency"를 문구로 사용하는 문서?
2. 또는 두 용어가 모두있는 문서는 문서의 어느 위치 에나 있습니까?
3. 아니면 해당 용어 중 하나를 사용하는 문서입니까?

다음과 같이하십시오 :
1. 선택 Q = 기능 : "전원 대기"& QT = dismax
2. Q = 기능 : 전원 + 기능 : 대기 시간 & QT = dismax & mm = 2
을 ? 3. Q = 기능 : 전원 + 기능 : DisMaxQParserPlugin에 대기 시간 & QT는 = dismax & mm = 1

더 많은 정보를 원하시면.

+0

그러나 왜 내가 선택하지? q = 기능 : 전력 % 20features : 대기 시간 및 Qt = dismax working.My Solr 구성 파일의 기본값으로 mm = 2 있습니다. 그리고 나머지 두 문서 및 대기 시간에 전원 6 문서가 있습니다. 4. 그들 중 누구도 힘과 대기 시간이 둘 다 없다. 따라서 deftype = dismax를 사용하면 올바른 6 개의 문서를 얻을 수 있습니다. 그러나 qt = dismax를 사용하면 결과가 전혀 표시되지 않습니다 .mm = 2 기본적으로 !!!!!! deftype과 qt의 차이점은 무엇입니까 ??? – Nakkala

+0

질문이 하나 더 있습니다. 우리가 deftype = dismax 및 qt = dismax를 모두 줄 수 있다면 dismax는 파서 및 요청 처리기라는 것을 의미합니다. 맞습니까? Solr의 다른 파서가 무엇인지 알고, 핸들러도 요청할 수 있습니다. – Nakkala

+0

solrconfig.xml에서 를 게시하십시오. –