2015-01-06 5 views
1

한 번에 여러 검색 패싯 값이 지정된 제품을 가질 수 있습니까? 그렇다면 어떻게? 나는이가 "문자열 (멀티)"패싯 필드 유형에 의해 처리 될 것이라고 생각 :넓은 범위의 다중 값 패싯

<dynamicField name="*_ss" type="string" indexed="true" stored="false" multiValued="true" /> 

하지만이 제품 당 하나 개 이상의 값을 선택하지 않는 것 같습니다.

검색면 : 인구 통계 학적 값 : 여기

내가 설정하고 싶은 무엇의 예입니다 남성, 여성, 어린이

나는 속성 이름을 가리키는 BLC_FIELD에 기록을 추가 한 String의 ArrayList 또한 SolrIndexService buildDocument를 수정하여 색인을 생성했습니다. 이 필드는 한 문서에서 다음과 같이 표시됩니다. demographic_ss : [Men, Children]

제품 A는 Men 및 Children 값과 관련이 있습니다.

패싯을 표시하기 위해 범주 페이지에 도달하면 인구 통계 학적으로 가져온 패싯 필드가 null입니다. 어떤 방법이 있습니까?

감사

답변

0

당신은 I18nSolrSearchServiceExtensionHandler.addPropertyValues을 사용자 정의해야합니다(). _ss 필드에는 문자열 배열 값이 필요하기 때문입니다.

if (field.getFacetFieldType() == FieldType.STRINGS) { 
    propertyValue = StringUtils.toStringArray(propertyValue); 
}