2014년 2월 17일 월요일

Solr DIH 사용시 유의점

Solr의 DIH(Data Import Handler)를 사용하여 DB의 데이터를 인덱싱하는 경우 DB의 column name과 shcema.xml에 정의된 field name이 동일한 경우(대소문자 구분없이)  db-data-config.xml 에서 entity 정의시 field 항목을 정의하지 않더라도 색인이 가능하다.

[참고] http://wiki.apache.org/solr/DataImportHandler#A_shorter_data-config

이러한 내용을 알고 있었지만 다음과 같은 실수를 범한 경험이 있다.

DB에 table1과 table2 모두에 "ipc"라는 column이 존재하며, schema.xml에 색인하고자 하는 필드로 "ipc"가 multiValued=true의 속성값을 가지고 정의되어 있다고 가정하자.

table1과 table2의 column 정보는 아래와 같다.

[table1] id, ipc
[table2] id, ipc, fi, ft

DIH를 위해 정의된 db-data-config.xml의 내용이 아래와 같다고 하자.

이 경우 의도는 table1의 ipc 정보를 색인하고 싶었으나 table2의 ipc 정보까지 함께 색인이 되어 버렸다.
따라서, "ent2"의 query를 select *이 아닌 select fi,ft로 바꿔주어야 한다.

댓글 없음:

댓글 쓰기