2014-01-08 2 views
9

사람과 같은 몇 가지 점을 포함, Q 및 SOLR 쿼리 FQ 사이에 나에게 차이 괜찮은 설명을 적어주세요 -차이가

  • 가 동일한 구문이 있습니까 ?
  • 동일한 결과를 반환합니까?
  • 언제 어떤 것을 사용해야합니까?
  • 다른 차이
+2

의 중복 가능성 http://stackoverflow.com/questions/14866263/solr-main-query-vs-fq 모두 q 및 FQ 파라미터 비슷) –

답변

3

표준 SOLR 쿼리 요청에 "Q"매개 변수를 사용합니다. 필터 쿼리는 "fq"매개 변수를 사용합니다.

주요 차이점은 필터링 된 쿼리가 관련성 점수에 영향을 미치지 않는다는 것입니다. 쿼리는 순전히 필터 (docset intersection, 본질적으로)로서 기능한다.

5

q 매개 변수는 쿼리를 가져 와서 인덱스에 대해 실행합니다. 그런 다음 필터 쿼리 (여러 개의 필터 쿼리를 사용할 수 있음)를 사용하여 결과를 필터링 할 수 있습니다.

예를 들어 검색어가 다음과 같이 표시 될 수 있습니다.

q=author:shakespeare 

'저자'입력란에 '셰익스피어'가있는 문서와 일치합니다. 그런 다음 이와 같은 필터 쿼리를 사용할 수 있습니다.

fq=title:hamlet 
fq=type:play 

이들은 다른 필드를 기반으로 결과를 필터링합니다. 동일한 필드에서 필터링 할 수도 있습니다.

검색어 구문

[FQ VS SOLR 메인 쿼리 (
+0

q = * : * 및 fq = author : 셰익스피어를 사용하지 않는 이유는 무엇입니까? 성능이 향상되지 않습니까? – ravi

+0

왜 q = *. *와 fq = author : shakspeare를 모두 사용해야합니까? q = author : shakspeare를 사용할 수 있습니다. fq는 여러 필드를 사용하여 필터링 할 때 유용합니다. –

+7

은 q = * : *를 갖는 모든 문서를 제공하고 모든 문서가 적합 할 때 관련성 점수를 계산하지 않으며 fq = author : shakespeare가 빠른 필터 작업을 실행하고 q = author의 경우 : 셰익스피어는 선택된 문서의 점수를 계산할 필요가 있으며 그렇게 빠르지는 않습니다. – ravi