SOLR 및 SQL 데이터 가져 오기에 어려움을 겪고 있습니다. 두 테이블에서 오는 데이터를 인덱싱해야합니다. 첫 번째 테이블은 "마스터"이고 두 번째 테이블은 "세부 정보"입니다. 이 두 테이블 간의 관계는 1에-N이며이 두 테이블에 콜 럼에 의해 현재 m_id 적용됩니다 :SOLR DataImportHandler, 중첩 된 엔터티를 JSON 배열로 처리하는 방법
CREATE TABLE "masters" (m_id NUMBER(10),
m_code VARCHAR2(100 CHAR),
m_description VARCHAR2(1000 CHAR),
PRIMARY KEY (m_id));
CREATE TABLE "details" (d_id NUMBER(10),
s_code VARCHAR2(100 CHAR),
s_description VARCHAR2(1000 CHAR),
m_id NUMBER(10),
PRIMARY KEY (d_id),
CONSTRAINT fk_details_masters FOREIGN KEY (m_id) REFERENCES "masters"(m_id));
나는 "마스터"테이블마다에 존재하는 각 행에 대해 인덱스 첨부 문서를 가지고 싶습니다 문서에는 "details"테이블의 ARRAY가 포함되어야합니다.
내 마음에 예시되어 결과는이 같은 것입니다 :
master = {
"ID": "1"
"m_code": "master53",
"m_description": "John Doe",
"details": [
{
"d_code": "detail001",
"d_description": "Shirts"
},
{
"d_code": "detail002",
"d_description": "Shoes"
},
{
"d_code": "detail003",
"d_description": "hats"
}
]
}
하지만은이 같은 생산할 수있어이 같은 구성을 사용
master = {
"ID": "1",
"m_code": "master53",
"m_description": "John Doe",
"d_code": ["detail001","detail002","detail003"],
"d_description": ["Shirts","Shoes","hats"]
}
을 :
<dataConfig>
<dataSource type="JdbcDataSource"
driver="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@//dora64svil.icc.crifnet.com:1521/cbrisvil.dbcrif.net"
user="CBBTC"
password="w4.gJ6Qf1p7Z_i4qFp3W_d"/>
<document>
<entity name="master" rootEntity="True"
query="SELECT m_id, m_code, m_description from master">
<field column="m_id" name="ID"/>
<field column="m_code" name="m_code_s"/>
<field column="m_description" name="m_description_s"/>
<entity name="details" rootEntity="False"
query="SELECT d_code, d_description from details where = m_id '${master.m_id}'">
<field column="d_code" name="d_code_ss"/>
<field column="d_description" name="d_description_ss"/>
</entity>
</entity>
</document>
</dataConfig>
구성 및 schema.xml 필드 정의가 많이 사용되었지만 f 적절한 길을 인도하십시오. (필드 접미사 "_s"와 "_ss"는 스키마에 적절한 필드 유형을 트리거하기 위해 존재합니다.)
내가하려는 것은 중첩 된 엔티티에 "이름"을 부여하는 것입니다. 오류입니까? 나는 개념 상으로는 잘못된 것을 시도하고 있습니까?