2012-09-27 6 views
1

MySql 데이터베이스가 여러 테이블에 걸쳐 MySql에서 정규화 된 Solr 데이터를 가져와야합니다. 예를 들어 '회사'열이있는 '기사'표가 있습니다. 'companyIds'는 두 번째 테이블 'company'의 'companyName'에 연결됩니다. Solr을 사용하여 회사 이름으로 기사를 찾을 수 있으려면 Solr 색인을 작성할 때 역 정규화해야합니다.Solst에 대한 데이터 소스 비정규 화

가장 쉬운 방법은 무엇입니까? 데이터 소스 구성에서 비정규 화를 수행 할 수 있습니까? 아니면 색인을 만들기 전에 비정규 화해야합니까?

Solrj를 사용하여 데이터를주고 받고 정상적으로 처리하는 것이 가장 쉽습니다. Solr이 이러한 기능을 가지고 있으면 불필요한 것처럼 보이지만 순간 가장 쉽게 얻을 수있는 방법입니다.

답변

1

아, 데이터 가져 오기 처리기의 설명서에서 찾고있는 것을 찾았습니다. 현재 테이블에있는 참조 값을 보유한 테이블에 대한 쿼리는 아래의 '하위 엔터티'쿼리를 사용하여 추출 할 수 있습니다. 내가 종료 언급해야 http://wiki.apache.org/solr/DataImportHandler#Full_Import_Example

+0

: 여기에서

<entity name="item_category" query="select category_id from item_category where item_id='${item.id}'"> <entity name="category" query="select description from category where id = '${item_category.category_id}'"> <field column="description" name="cat" /> </entity> </entity> 

XML :

항목의 범주 이름은 부모 개체/쿼리에서 CATEGORY_ID를 사용하여 카테고리 테이블에서 선택하여 해결 성능 향상을 위해 자체 데이터 가져 오기 도구 작성 solr 구성은 구현할 때 쿼리를 효율적으로 실행할 수있는 충분한 유연성을 허용하지 않는 것 같습니다. 원하는 경우 [here] (https://bitbucket.org/worldsayshi/flattableimporthandler) 소스를 볼 수 있습니다. – worldsayshi

관련 문제