2012-12-04 3 views
1

텍스트 필드에는 이름과 성을 비롯한 사용자 상점 정보가 있습니다. 예 : 존 벨. "John"또는 "Bell"또는 "John Bell"을 검색하면 괜찮습니다.
하지만 "벨 존"으로 검색 할 때 검색 결과는 0입니다.이 문제를 해결할 수 있습니까? 스키마 구성 :solr 이름과 성으로 검색

<field name="content" type="content_ws" indexed="true" stored="true" /> 

<fieldType name="content_ws" class="solr.TextField" positionIncrementGap="100"> 
     <analyzer type="query"> 
    <charFilter class="solr.HTMLStripCharFilterFactory"/> 
     <tokenizer class="solr.WhitespaceTokenizerFactory"/> 
     <filter class="solr.LowerCaseFilterFactory"/> 
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/> 
     </analyzer> 
     <analyzer type="index"> 
    <charFilter class="solr.HTMLStripCharFilterFactory"/> 
     <tokenizer class="solr.WhitespaceTokenizerFactory"/> 
     <filter class="solr.LowerCaseFilterFactory"/> 
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/> 
     </analyzer> 
    </fieldType> 
+1

검색어에 큰 따옴표를 넣었습니까? – Stanley

+0

문제는 positionIncrementGap 일 수 있습니다. 해당 매개 변수를 제거하고 확인하십시오. – Jayendra

+0

positionIncrementGap - 제거되었습니다. 변경된 사항이 없습니다. "검색어에 큰 따옴표를 포함 하시겠습니까?"라는 의미는 무엇입니까? – Roman

답변

0

DisMax 쿼리 분석기를 사용하여 역순으로 쿼리를 발견하는 데 도움이됩니다 값 2보다 큰 qs 매개 변수를 설정하여. 당신이 근접 매개 변수 queryies을 만들 수있는 표준 쿼리 처리기와

http://localhost:8993/solr/select?defType=dismax&q="Bell John"&qs=2 
0

:

쿼리 같은 것을해야한다.

q=content:"Bell John"~2 여기서 2는 기울기 또는 토큰 간격입니다.

존 벨을 검색 할 때 단어의 위치는 0이므로 근접 슬로프가 작동합니다. 검색 할 때와 동일한 단어를 작성하는 위치에는 변화가 없습니다. 쿼리 Bell John

그러나 단어를 만들 홉수는 2

예컨대

따라서 존경하는 쿼리의 경우 기울기는이 경우 최소 2 여야합니다.