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.

Reply via email to