2012-11-29 6 views
3

다음과 같이 정의 된 fieldType이 있습니다. 이제는 A 또는 P와 같은 단일 문자를 포함하는이 필드 유형의 'StatusCode'필드를 정의했습니다.이 fieldType을 사용하여 데이터를 인덱싱했으며 StatusCode와 같은 쿼리를 실행할 때 : A는 결과를 반환하지 않습니다. 누군가가 단일 문자 필드에서 쿼리가 작동하지 않는 이유를 설명해 주실 수 있습니까?Solr Query 단일 문자

<fieldType name="text_exact_fuzzy" class="solr.TextField" omitNorms="false"> 
     <analyzer type="index"> 
      <tokenizer class="solr.StandardTokenizerFactory"/> 
      <filter class="solr.StandardFilterFactory"/> 
      <filter class="solr.LowerCaseFilterFactory"/> 
     </analyzer> 
     <analyzer type="query"> 
     <tokenizer class="solr.StandardTokenizerFactory"/> 
     <filter class="solr.StandardFilterFactory"/> 
     <filter class="solr.LowerCaseFilterFactory"/>   
     </analyzer> 
    </fieldType> 
+1

'a'는 일반적인 중지 단어이므로 일반적으로 색인이 생성되지 않을 것으로 예상됩니다. 하지만 'p'를 검색해도 결과가 나오지 않으면 다른 일이 진행되고 있습니다. – femtoRgon

+0

A가 아닌 모든 단일 문자에서 발생합니다. 내가 여기서 뭘 잘못하고 있는지 잘 모르겠다. – Ravi

+0

status_Code 필드의 스키마 정의는 무엇입니까? ? 사실 색인이 붙었습니까? – Jayendra

답변

3

이 text_exact_fuzzy로 그 분석기와 상태 코드와 같은 필드를 정의하는 이상한 것 같다.

대신 분석을 수행하지 않고 간단한 StrField를 사용하십시오 (필요한 경우 소문자 필터 팩토리 만 사용). 예상되는 히트를 얻어야합니다. 모든

+0

고마워요! 상태 코드를 'String'fieldType으로 변경했습니다. text_exact_fuzzy에 정의 된 분석기가 단일 문자 필드에 적합하지 않음을 이해합니다. 그러나 나는 왜 이러한 분석기를 사용하면 왜이 경우 쿼리가 실패하게되는지 이해하지 못했습니다 (여러 문자가있는 단어로 작업하는 경우 단일 문자가 아닌 이유는 무엇입니까?). – Ravi

+0

그들은 여러 가지 방법으로 텍스트를 처리하도록 설계되었으므로 아마도 전혀 끝나지 않을 것입니다. 디버그 모드에서 쿼리를 실행하여이를 확인할 수 있습니다 (관리자 인터페이스 사용). – MatsLindh

0

우선은이 같은 쿼리를 구축 제안은 : P와 TEST :

쿼리 = TEST (물론 당신이 예를 들어 당신의 단일 문자 TEST를 포함 필드를 호출 할 수 있습니다)를

결과가 있습니까?

관련 문제