I want to index mysql database in solr using the Data Import Handler. I have made two tables. The first table holds the metadata of a file.
create table filemetadata ( id varchar(20) primary key , filename varchar(50), path varchar(200), size varchar(10), author varchar(50) ) ; +-------+-------------+---------+------+---------+ | id | filename | path | size | author | +-------+-------------+---------+------+---------+ | 1 | abc.txt | c:\files | 2kb | eric | +-------+-------------+---------+------+---------+ | 2 | xyz.docx | c:\files | 5kb | john | +-------+-------------+---------+------+---------+ | 3 | pqr.txt |c:\files | 10kb | mike | +-------+-------------+---------+------+---------+ The second table contains the "favourite" info about a particular file in the above table. create table filefav ( fid varchar(20) primary key , id varchar(20), favouritedby varchar(300), favouritedtime varchar(10), FOREIGN KEY (id) REFERENCES filemetadata(id) ) ; +--------+------+-----------------+----------------+ | fid | id | favouritedby | favouritedtime | +--------+------+-----------------+----------------+ | 1 | 1 | ross | 22:30 | +--------+------+-----------------+----------------+ | 2 | 1 | josh | 12:56 | +--------+------+-----------------+----------------+ | 3 | 2 | johny | 03:03 | +--------+------+-----------------+----------------+ | 4 | 2 | sean | 03:45 | +--------+------+-----------------+----------------+ here "id' is a foreign key. The second table is showing which person has marked which document as his/her favourite. Eg the file abc.txt represented by id = 1 has been marked favourite (see column favouritedby) by ross and josh. I want to index the the files as follows: each document should have the following fields id - to be taken from the first table filemetadata filename - to be taken from the first table filemetadata path - to be taken from the first table filemetadata size - to be taken from the first table filemetadata author - to be taken from the first table filemetadata Favouritedby - this field should contain the names of all the people from table 2 filefav (from the favouritedby column) who like that particular file. eg after indexing doc 1 should have id = 1 filename = abc.txt path = c:\files size = 2kb author = eric favourited by - ross , josh How Do I achieve this? I have written a data-config.xml (which is not giving the desired result) as follows <dataConfig> <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/test" user="root" password="root" /> <document name="filemetadata"> <entity name="restaurant" query="select * from filemetadata"> <field column="id" name="id" /> <entity name="filefav" query="select favouritedby from filefav where id=${filemetadata.id}"> <field column="favouritedby" name="favouritedby1" /> </entity> <field column="filename" name="name1" /> <field column="path" name="path1" /> <field column="size" name="size1" /> <field column="author" name="author1" /> </entity> </document> </dataConfig> Can anyone explain how do i achieve this? -- View this message in context: http://lucene.472066.n3.nabble.com/Index-mysql-database-using-data-import-handler-in-solr-tp4077205.html Sent from the Solr - User mailing list archive at Nabble.com.