Hi Noble, I tried with the deltaImportQuery as well. But still I am getting the same exception on the server console -
Dec 29, 2008 4:53:52 PM org.apache.solr.handler.dataimport.DataImporter doDeltaImport SEVERE: Delta Import Failed java.lang.NullPointerException at org.apache.solr.handler.dataimport.SqlEntityProcessor.getDeltaImportQuery(SqlEntityProcessor.java:153) at org.apache.solr.handler.dataimport.SqlEntityProcessor.getQuery(SqlEntityProcessor.java:125) at org.apache.solr.handler.dataimport.SqlEntityProcessor.nextRow(SqlEntityProcessor.java:73) at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:285) at org.apache.solr.handler.dataimport.DocBuilder.doDelta(DocBuilder.java:211) at org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:133) at org.apache.solr.handler.dataimport.DataImporter.doDeltaImport(DataImporter.java:359) at org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:388) at org.apache.solr.handler.dataimport.DataImporter$1.run(DataImporter.java:377) Another thing, I do have proper data in the DB. Thanks, Manu Noble Paul നോബിള് नोब्ळ् wrote: > > The same example with deltaImportQuery would look as follows > <dataConfig> > <dataSource driver="com.mysql.jdbc.Driver" > url="jdbc:mysql://localhost/solr_demo_db" user="root" password="root" /> > <document name="products"> > <entity name="item" pk="ID" query="select * from item" > deltaQuery="select id from item where last_modified > > '${dataimporter.last_index_time}'" > deltaImportQuery="select * from item where ID=${dataimporter.delta.ID}" >> > <field column="NAME" name="name" /> > <field column="NAME" name="nameSort" /> > <field column="NAME" name="alphaNameSort" /> > > <entity name="feature" pk="ITEM_ID" > query="select DESCRIPTION from FEATURE where > ITEM_ID='${item.ID}'" > deltaQuery="select ITEM_ID from FEATURE where > last_modified > '${dataimporter.last_index_time}'" > parentDeltaQuery="select ID from item where > ID=${feature.ITEM_ID}"> > <field name="features" column="DESCRIPTION" /> > </entity> > > <entity name="item_category" pk="ITEM_ID, CATEGORY_ID" > query="select CATEGORY_ID from item_category where > ITEM_ID='${item.ID}'" > deltaQuery="select ITEM_ID, CATEGORY_ID from > item_category where last_modified > '${dataimporter.last_index_time}'" > parentDeltaQuery="select ID from item where > ID=${item_category.ITEM_ID}"> > <entity name="category" pk="ID" > query="select DESCRIPTION from category where ID = > '${item_category.CATEGORY_ID}'" > deltaQuery="select ID from category where > last_modified > '${dataimporter.last_index_time}'" > parentDeltaQuery="select ITEM_ID, CATEGORY_ID from > item_category where CATEGORY_ID=${category.ID}"> > <field column="description" name="cat" /> > </entity> > </entity> > </entity> > </document> > </dataConfig> > > On Mon, Dec 29, 2008 at 3:30 PM, Noble Paul നോബിള് नोब्ळ् > <noble.p...@gmail.com> wrote: >> did you put in the data? >> >> On Mon, Dec 29, 2008 at 3:07 PM, Manupriya <manupriya.si...@gmail.com> >> wrote: >>> >>> Hi Shalin, >>> >>> I am actually trying out the example provided at >>> http://wiki.apache.org/solr/DataImportHandler. >>> >>> My db-data-config.xml is as following - >>> >>> <dataConfig> >>> <dataSource driver="com.mysql.jdbc.Driver" >>> url="jdbc:mysql://localhost/solr_demo_db" user="root" password="root" /> >>> <document name="products"> >>> <entity name="item" pk="ID" query="select * from item" >>> deltaQuery="select id from item where last_modified > >>> '${dataimporter.last_index_time}'"> >>> <field column="NAME" name="name" /> >>> <field column="NAME" name="nameSort" /> >>> <field column="NAME" name="alphaNameSort" /> >>> >>> <entity name="feature" pk="ITEM_ID" >>> query="select DESCRIPTION from FEATURE where >>> ITEM_ID='${item.ID}'" >>> deltaQuery="select ITEM_ID from FEATURE where >>> last_modified > '${dataimporter.last_index_time}'" >>> parentDeltaQuery="select ID from item where >>> ID=${feature.ITEM_ID}"> >>> <field name="features" column="DESCRIPTION" /> >>> </entity> >>> >>> <entity name="item_category" pk="ITEM_ID, CATEGORY_ID" >>> query="select CATEGORY_ID from item_category where >>> ITEM_ID='${item.ID}'" >>> deltaQuery="select ITEM_ID, CATEGORY_ID from >>> item_category where last_modified > '${dataimporter.last_index_time}'" >>> parentDeltaQuery="select ID from item where >>> ID=${item_category.ITEM_ID}"> >>> <entity name="category" pk="ID" >>> query="select DESCRIPTION from category where ID >>> = >>> '${item_category.CATEGORY_ID}'" >>> deltaQuery="select ID from category where >>> last_modified > '${dataimporter.last_index_time}'" >>> parentDeltaQuery="select ITEM_ID, CATEGORY_ID >>> from >>> item_category where CATEGORY_ID=${category.ID}"> >>> <field column="description" name="cat" /> >>> </entity> >>> </entity> >>> </entity> >>> </document> >>> </dataConfig> >>> --------------------------------------------------------------------------------------------------- >>> >>> My DB structure is as following - >>> >>> DROP TABLE IF EXISTS solr_demo_db.item; >>> CREATE TABLE `item` ( >>> `ID` int(2) NOT NULL auto_increment, >>> `name` varchar(100) default NULL, >>> `manu` varchar(20) default NULL, >>> `weight` varchar(20) default NULL, >>> `price` varchar(20) default NULL, >>> `popularity` varchar(2) default NULL, >>> `includes` varchar(10) default NULL, >>> `last_modified` datetime default NULL, >>> PRIMARY KEY (`ID`) >>> ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1; >>> >>> DROP TABLE IF EXISTS solr_demo_db.feature; >>> CREATE TABLE `feature` ( >>> `DESCRIPTION` varchar(100) default NULL, >>> `ITEM_ID` int(2) NOT NULL, >>> `last_modified` datetime default NULL, >>> PRIMARY KEY (`ITEM_ID`) >>> ) ENGINE=InnoDB DEFAULT CHARSET=latin1; >>> >>> DROP TABLE IF EXISTS solr_demo_db.category; >>> CREATE TABLE `category` ( >>> `ID` int(2) NOT NULL auto_increment, >>> `DESCRIPTION` varchar(100) default NULL, >>> `last_modified` date default NULL, >>> PRIMARY KEY (`ID`) >>> ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1; >>> >>> DROP TABLE IF EXISTS solr_demo_db.item_category; >>> CREATE TABLE `item_category` ( >>> `ITEM_ID` int(2) NOT NULL default '0', >>> `CATEGORY_ID` int(2) NOT NULL default '0', >>> `last_modified` date default NULL, >>> PRIMARY KEY (`ITEM_ID`,`CATEGORY_ID`) >>> ) ENGINE=InnoDB DEFAULT CHARSET=latin1; >>> >>> Am I doing something wrong here? >>> >>> Thanks, >>> Manu >>> >>> >>> Shalin Shekhar Mangar wrote: >>>> >>>> What does your data-config look like? especially the delta query part. >>>> >>>> On Mon, Dec 29, 2008 at 2:35 PM, Manupriya >>>> <manupriya.si...@gmail.com>wrote: >>>> >>>>> >>>>> Hi, >>>>> >>>>> I am using Delta DataImport feature to partially refresh the indexes. >>>>> >>>>> Note - full-import is working perfectly fine. But I need to do >>>>> delta-import >>>>> as I do not want to rebuild all the indexes. >>>>> >>>>> My database structure is same as mentioned in the example at >>>>> http://wiki.apache.org/solr/DataImportHandler. >>>>> >>>>> http://www.nabble.com/file/p21200498/example-schema.png >>>>> --------------------------------------------------------------------------- >>>>> The dataimport.properties has the value as - >>>>> >>>>> #Mon Dec 29 14:08:12 IST 2008 >>>>> last_index_time=2008-12-29 14\:08\:12 >>>>> --------------------------------------------------------------------------- >>>>> I have changed the last_modified for the 'tem' table as current >>>>> timestamp. >>>>> And when I query the DB, I get the following result - >>>>> >>>>> http://www.nabble.com/file/p21200498/data.jpg >>>>> >>>>> ------------------------------------------------------------------------------------------------- >>>>> >>>>> But when I call delta data-import, it returns me the following >>>>> response - >>>>> >>>>> Server Response: >>>>> >>>>> {responseHeader={status=0,QTime=16},initArgs={defaults={config=db-data-config.xml}},command=delta-import,status=idle,importResponse=,statusMessages={},WARNING=This >>>>> response format is experimental. It is likely to change in the >>>>> future.} >>>>> >>>>> >>>>> --------------------------------------------------------------------------------------------------- >>>>> And when I query for data for '*:*', I get the following - >>>>> Note - Data returned by query doesnt reflect the correct timestamp >>>>> from >>>>> database. >>>>> >>>>> SolrDocument(1) >>>>> Field Name & Value: includes=12 >>>>> Field Name & Value: features=[demo feature, demo feature 1] >>>>> Field Name & Value: price=12.0 >>>>> Field Name & Value: timestamp=Mon Dec 29 13:57:54 IST 2008 >>>>> Field Name & Value: manu=manu-12 >>>>> Field Name & Value: sku=1 >>>>> Field Name & Value: id=1 >>>>> Field Name & Value: popularity=1 >>>>> Field Name & Value: weight=12.0 >>>>> SolrDocument(2) >>>>> Field Name & Value: includes=43 >>>>> Field Name & Value: features=demo feature 2 >>>>> Field Name & Value: price=10.0 >>>>> Field Name & Value: timestamp=Mon Dec 29 13:57:54 IST 2008 >>>>> Field Name & Value: manu=Demo - 12 >>>>> Field Name & Value: sku=2 >>>>> Field Name & Value: id=2 >>>>> Field Name & Value: popularity=5 >>>>> Field Name & Value: weight=12.0 >>>>> SolrDocument(3) >>>>> Field Name & Value: includes=1 >>>>> Field Name & Value: features=demo -3 >>>>> Field Name & Value: price=1.0 >>>>> Field Name & Value: timestamp=Mon Dec 29 13:57:54 IST 2008 >>>>> Field Name & Value: manu=manu - 36 >>>>> Field Name & Value: sku=3 >>>>> Field Name & Value: id=3 >>>>> Field Name & Value: popularity=1 >>>>> Field Name & Value: weight=1.0 >>>>> SolrDocument(4) >>>>> Field Name & Value: includes=2 >>>>> Field Name & Value: features=demo - 4 >>>>> Field Name & Value: price=2.0 >>>>> Field Name & Value: timestamp=Mon Dec 29 13:57:55 IST 2008 >>>>> Field Name & Value: manu=manu - 46 >>>>> Field Name & Value: sku=4 >>>>> Field Name & Value: id=4 >>>>> Field Name & Value: popularity=2 >>>>> Field Name & Value: weight=2.0 >>>>> SolrDocument(5) >>>>> Field Name & Value: includes=3 >>>>> Field Name & Value: features=demo - 5 >>>>> Field Name & Value: price=3.0 >>>>> Field Name & Value: timestamp=Mon Dec 29 13:57:55 IST 2008 >>>>> Field Name & Value: manu=manu - 56 >>>>> Field Name & Value: sku=5 >>>>> Field Name & Value: id=5 >>>>> Field Name & Value: popularity=3 >>>>> Field Name & Value: weight=3.0 >>>>> SolrDocument(6) >>>>> Field Name & Value: includes=4 >>>>> Field Name & Value: features=demo - 66 >>>>> Field Name & Value: price=4.0 >>>>> Field Name & Value: timestamp=Mon Dec 29 13:57:55 IST 2008 >>>>> Field Name & Value: manu=manu - 66 >>>>> Field Name & Value: sku=6 >>>>> Field Name & Value: id=6 >>>>> Field Name & Value: popularity=4 >>>>> Field Name & Value: weight=4.0 >>>>> >>>>> >>>>> ------------------------------------------------------------------------------------------ >>>>> My Java code that calls delta import is as follows - >>>>> >>>>> public static void main(String[] args) throws IOException, >>>>> SolrServerException { >>>>> CommonsHttpSolrServer server = new >>>>> CommonsHttpSolrServer("http://localhost:8983/solr"); >>>>> BinaryResponseParser parser = new BinaryResponseParser(); >>>>> server.setParser(parser); >>>>> >>>>> ModifiableSolrParams params = new ModifiableSolrParams(); >>>>> params.set("qt", "/dataimport"); >>>>> params.set("command", "delta-import"); >>>>> params.set("commit", "true"); >>>>> params.set("wt","json"); >>>>> >>>>> try{ >>>>> >>>>> QueryResponse response = server.query(params); >>>>> server.commit(); >>>>> System.out.println("Server Response: " + response); >>>>> >>>>> SolrQuery query = new SolrQuery("*:*"); >>>>> QueryResponse results = server.query(query); >>>>> >>>>> SolrDocumentList list = results.getResults(); >>>>> >>>>> int index = 1; >>>>> for (SolrDocument solrDocument : list) { >>>>> >>>>> System.out.println("SolrDocument("+index+")"); >>>>> Iterator<Entry<String, Object>> iterator = >>>>> solrDocument.iterator(); >>>>> >>>>> while(iterator.hasNext()){ >>>>> System.out.println("Field Name & Value: >>>>> "+iterator.next()); >>>>> } >>>>> >>>>> index++; >>>>> } >>>>> >>>>> }catch(Exception ex){ >>>>> >>>>> System.out.println("Exception Occured:"+ex); >>>>> } >>>>> >>>>> } >>>>> --------------------------------------------------------------------------- >>>>> >>>>> Does SOLR do some kind of caching? I dont understand as why the >>>>> updated >>>>> values are not queried correctly from DB? >>>>> >>>>> There are no errors in the logs. But I can see an error on the server >>>>> console - >>>>> >>>>> SEVERE: Delta Import Failed >>>>> java.lang.NullPointerException >>>>> at >>>>> >>>>> org.apache.solr.handler.dataimport.SqlEntityProcessor.getDeltaImportQuery(SqlEntityProcessor.java:153) >>>>> at >>>>> >>>>> org.apache.solr.handler.dataimport.SqlEntityProcessor.getQuery(SqlEntityProcessor.java:125) >>>>> at >>>>> >>>>> org.apache.solr.handler.dataimport.SqlEntityProcessor.nextRow(SqlEntityProcessor.java:73) >>>>> at >>>>> >>>>> org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:285) >>>>> at >>>>> org.apache.solr.handler.dataimport.DocBuilder.doDelta(DocBuilder.java:211) >>>>> at >>>>> org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:133) >>>>> at >>>>> >>>>> org.apache.solr.handler.dataimport.DataImporter.doDeltaImport(DataImporter.java:359) >>>>> at >>>>> >>>>> org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:388) >>>>> at >>>>> >>>>> org.apache.solr.handler.dataimport.DataImporter$1.run(DataImporter.java:377) >>>>> >>>>> >>>>> What can be the reason for this error? >>>>> >>>>> Thanks, >>>>> Manu >>>>> >>>>> -- >>>>> View this message in context: >>>>> http://www.nabble.com/Delta-DataImport-is-not-picking-the-modified-value-in-DB-tp21200498p21200498.html >>>>> Sent from the Solr - User mailing list archive at Nabble.com. >>>>> >>>>> >>>> >>>> >>>> -- >>>> Regards, >>>> Shalin Shekhar Mangar. >>>> >>>> >>> >>> -- >>> View this message in context: >>> http://www.nabble.com/Delta-DataImport-is-not-picking-the-modified-value-in-DB-tp21200498p21200786.html >>> Sent from the Solr - User mailing list archive at Nabble.com. >>> >>> >> >> >> >> -- >> --Noble Paul >> > > > > -- > --Noble Paul > > -- View this message in context: http://www.nabble.com/Delta-DataImport-is-not-picking-the-modified-value-in-DB-tp21200498p21201980.html Sent from the Solr - User mailing list archive at Nabble.com.