2014-12-30 1 views
1

단일 문자 및 와일드 카드 검색 필드를 쿼리하는 데 solr을 사용하고 있습니다.단일 문자로 검색하는 예기치 않은 결과를 가진 와일드 카드 검색

예를 들어 "A", "AA", "AB", "BZ^A", "AAB"과 같은 이름의 개체를 반환하려고합니다. 내가 q=name:a&sort=name+asc

의 쿼리를 작성하는 경우

나는 등 "A", "BZ^A", "AA"와의 예기치 않은 결과를 얻을.

필자도 q=name:a*을 시도했으며 결과 세트는 동일합니다.

"A", "AA", "AAB", "AB", "BZ^A"의 예상 정렬 결과를 얻는 방법이 있습니까?

다음은 xml 파일의 내 필드 유형/이름 정보입니다.

<schema name="solr_quickstart" version="1.1"> 
    <types> 
    <fieldType name="text" class="solr.TextField"> 
     <analyzer> 
     <tokenizer class="solr.StandardTokenizerFactory" /> 
     <filter class="solr.LowerCaseFilterFactory" /> 
     </analyzer> 
    </fieldType> 
    </types> 
    <fields> 
    <field name="name" type="text" indexed="true" stored="true" /> 
    </fields> 
    <defaultSearchField>name</defaultSearchField> 
    <uniqueKey>(name)</uniqueKey> 
</schema> 
+0

schema.xml에서 필드 이름의 fieldType을 게시 하시겠습니까? 그 필드가 토큰 화되었다고 가정합니다. 토큰 화 된 필드를 정렬 할 때 흥미로운 일이 발생할 수 있습니다. – cheffe

답변

0

비슷한 질문으로 this answer을보십시오. 여러 용어로 토큰 화하는 텍스트 필드를 정렬하는 데 문제가있을 것입니다. 분석기를 키워드 분석기로 변경하여이 작업을 수행 할 수 있습니다. 그래도 여러 용어가 필요하다면 다른 필드에 copyField를 사용하는 것이 좋습니다.

+0

거기에 잘못된 필드 유형이 있었는데 텍스트이어야합니다.이를 반영하기 위해 게시물을 업데이트했습니다. 그것이 당신의 대답을 바꾸는 지 확실하지 않습니다. – ckross01