2014-07-16 2 views
1

mysql db에서 solr 문서로 데이터를 가져오고 있습니다. 모두 괜찮아요하지만 복합 키 (기본 키로 함께 한 쌍의) -> 기본 키 post_locations 테이블에 대한 하나의 테이블이있다 (post_id, location_id)입니다. 그러나 내 post_id가 내 solr 문서의 기본 키이므로 post_location 테이블에서 데이터를 가져올 때 location_ids를 덮어 쓰는 중입니다. location_ids (int 유형)를 배열로 가져올 수 있습니까? 게시물에 대해 하나의 location_id보다 큼).solr에서 dih를 사용하여 복합 키를 처리하는 방법

답변

1

MySQL의 경우 GROUP BYGROUP_CONCAT을 사용하면 단일 열로 그룹화 된 필드의 모든 값을 ,으로 구분하여 사용할 수 있습니다. 그런 다음 해당 필드에 RegexTransformersplitBy을 사용하여 필드를 multiValued (실제로는 배열로 인덱싱 함)으로 인덱싱 할 수 있습니다. 이전 답변에 an example of this이라고 게시했습니다. DIH에서 종속 엔티티 항목을 사용하여이 작업을 수행 할 수도 있지만 GROUP BYGROUP_CONCAT보다 더 많은 SQL 쿼리가 필요합니다.

각 항목에 대해 하나의 행을 사용하려는 경우 CONCAT을 사용하여 MySQL 측에서 집계/복합 키를 작성하는 대신 uniqueKey 맞춤 빌드를 사용할 수 있습니다.

+0

감사합니다. @fiskfisk. 그것은 매력처럼 작동했습니다. :) – Sashank

관련 문제