2012-10-25 2 views
0

solr이 필드에 예상치 못한 값을 넣을 때 문제가 있습니다. 의 schema.xml에서Solr multiValued 필드입니다. 잘못된 값이 반환 됨 [B @ 6ad21538

미디어 jdbc.xml

<field column="country_ids" splitBy="\|" /> 

및 쿼리

<field name="country_ids" type="string" multiValued="true" stored="true" indexed="true" /> 

NULL을 반환 또는 2 | 3 | 8 | 9 | 3 이 분야에서. (모든 쿼리가 크고 완벽하게 작동합니다.)

브라우저에서 쿼리를 수행 할 때. 나는 무엇을 누락

<arr name="country_ids"> 
    <str>[[email protected]</str> 
</arr> 

:

분야 이상한 값을 유지?

SOLR 버전 3.5

+0

데이터를 어떻게 인덱싱합니까? Java 프로그램을 통해? DataImportHandler? – javanna

+0

DataImportHandler – Pol

답변

0

좋아! 그래서 가져 오기 위해이 쿼리를 사용했습니다 :

(select group_concat(distinct mmpc.mediacountry_id separator '|') from media_media_production_countries mmpc where mmpc.media_id=m.id) as country_ids 

약간 편집 한 후 올바른 결과를 얻었습니다. 당신은 내가

conver(**MY_STATEMENT** USING latin1)을 추가하지만 스틸 이유를 설명하지 못할 noutice 경우

convert((select group_concat(distinct mmpc.mediacountry_id separator '|') from media_media_production_countries mmpc where mmpc.media_id=m.id) USING latin1) as country_ids 

: 는로 변경되었습니다. 누군가가 나에게 설명을 주면 고맙겠습니다.

+1

쿼리에서 돌아 오면'toString' 메서드를 확장하지 않는 Java Object가 반환됩니다. 'toString' 메쏘드의 기본 구현이 리턴하는 것을 다시 얻습니다. 나는 그것이 단순한 String이 아닌 컬럼의 타입에 의존한다고 생각한다. 어떤 유형입니까? – javanna

+0

이것은 정수입니다. – Pol

+0

이상한. 아니 MySQL의 전문가,하지만 그것은 jdbc 드라이버에 따라 달라집니다 ... – javanna