2012-02-21 4 views
-1

구문 쿼리에 문제가 있습니다.Solr - 정확한 구문 만 일치하십시오.

검색어 입력 : 내가 정확히 일치 구문 포함 된 텍스트 만이 할

"많은 결과"

"많은 결과 단어 단어 단어 단어 단어 단어 "

  1. "많은 결과를 단어 단어 단어"

그러나 문제는 다음과 같습니다

  1. "단어 단어 단어 많은 결과 단어 단어 단어"

  2. "단어 단어 많은 결과 단어"

  3. " 단어 많은 결과 단어 "- 나는 내 결과에 이것을 가지고 싶지 않다.

스키마 : 도움을

<fieldType name="text" class="solr.TextField" termVectors="true" termPositions="true" termOffsets="true" autoGeneratePhraseQueries="true"> 
<analyzer type="index"> 
    <tokenizer class="solr.StandardTokenizerFactory" /> 
    <filter class="solr.TrimFilterFactory" /> 
    <filter class="solr.LowerCaseFilterFactory" /> 
    <filter class="solr.ReversedWildcardFilterFactory" /> 
</analyzer> 
<analyzer type="query"> 
    <tokenizer class="solr.StandardTokenizerFactory" /> 
    <filter class="solr.TrimFilterFactory" /> 
    <filter class="solr.LowerCaseFilterFactory" /> 
</analyzer> 

감사

+0

당신은 당신이 사용하고있는 쿼리 파서 알려 쿼리 구문 분석하는 방법을보고 (debugQuery = true)를 디버그 출력을 붙여 넣을 수 있습니까? – jpountz

+0

정지 단어 필터가 올바르지 않으십니까? – aitchnyu

답변

2

이 같은 순서로 정확한 구문 검색을해야하는 경우, 구문 예 "에 쿼리를 통과해야합니다 많은 결과 ".
정확히 일치하는 단어와 모든 단어를 함께 표시합니다.

쿼리가 구문 쿼리가 아니며 모든 단어가 필요하면 검색은 일부 위치 (슬롭 정의에 따라 다름) 내의 문서에서 단어를 검색하고 기본값이 OR 인 기본 검색 연산자를 찾습니다.

당신이 dismax를 사용하는 경우, qfMinimum match (mm)에 대한 query slop에 의한 통제는 문서에 존재하는 데 필요한 용어의 숫자가 결과로 반환하는.

standard request handler을 사용하는 경우 Query parser default operator을 확인해야합니다.

http://wiki.apache.org/solr/SchemaXml#Default_query_parser_operator

관련 문제