Hello Markus.
I have tried your recomendation using
<property>
  <name>index.db.md</name>
  <value>_rs_</value>
  <description>
     Comma-separated list of keys to be taken from the crawldb metadata to 
generate fields.
     Can be used to index values propagated from the seeds with the plugin 
urlmeta 
  </description>
</property>


but i get the Exception(see below), by the indexer.
******************************************************************
2017-02-06 18:18:28,905 INFO  anchor.AnchorIndexingFilter - Anchor 
deduplication is: on
2017-02-06 18:18:29,024 INFO  more.MoreIndexingFilter - Reading content type 
mappings from file contenttype-mapping.txt
2017-02-06 18:18:29,849 INFO  indexer.IndexWriters - Adding 
org.apache.nutch.indexwriter.solr.SolrIndexWriter
2017-02-06 18:18:29,969 INFO  solr.SolrMappingReader - source: content dest: 
content
2017-02-06 18:18:29,969 INFO  solr.SolrMappingReader - source: title dest: title
2017-02-06 18:18:29,969 INFO  solr.SolrMappingReader - source: host dest: host
2017-02-06 18:18:29,969 INFO  solr.SolrMappingReader - source: segment dest: 
segment
2017-02-06 18:18:29,969 INFO  solr.SolrMappingReader - source: boost dest: boost
2017-02-06 18:18:29,969 INFO  solr.SolrMappingReader - source: digest dest: 
digest
2017-02-06 18:18:29,969 INFO  solr.SolrMappingReader - source: tstamp dest: 
tstamp
2017-02-06 18:18:29,969 INFO  solr.SolrMappingReader - source: 
metatag.description dest: description
2017-02-06 18:18:29,969 INFO  solr.SolrMappingReader - source: metatag.keywords 
dest: keywords
2017-02-06 18:18:30,134 WARN  mapred.LocalJobRunner - job_local15168888_0001
java.lang.Exception: java.lang.ClassCastException: 
org.apache.hadoop.io.IntWritable cannot be cast to org.apache.hadoop.io.Text
        at 
org.apache.hadoop.mapred.LocalJobRunner$Job.runTasks(LocalJobRunner.java:462)
        at 
org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:529)
Caused by: java.lang.ClassCastException: org.apache.hadoop.io.IntWritable 
cannot be cast to org.apache.hadoop.io.Text
        at 
org.apache.nutch.indexer.metadata.MetadataIndexer.filter(MetadataIndexer.java:58)
        at 
org.apache.nutch.indexer.IndexingFilters.filter(IndexingFilters.java:51)
        at 
org.apache.nutch.indexer.IndexerMapReduce.reduce(IndexerMapReduce.java:330)
        at 
org.apache.nutch.indexer.IndexerMapReduce.reduce(IndexerMapReduce.java:56)
        at 
org.apache.hadoop.mapred.ReduceTask.runOldReducer(ReduceTask.java:444)
        at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:392)
        at 
org.apache.hadoop.mapred.LocalJobRunner$Job$ReduceTaskRunnable.run(LocalJobRunner.java:319)
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
2017-02-06 18:18:30,777 ERROR indexer.IndexingJob - Indexer: 
java.io.IOException: Job failed!
        at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:836)
        at org.apache.nutch.indexer.IndexingJob.index(IndexingJob.java:145)
        at org.apache.nutch.indexer.IndexingJob.run(IndexingJob.java:228)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
        at org.apache.nutch.indexer.IndexingJob.main(IndexingJob.java:237)
******************************************************************

Y have looked index-metadata plugin and i think that the problem is when 
Writable object is forced to Text
see
https://github.com/apache/nutch/blob/master/src/plugin/index-metadata/src/java/org/apache/nutch/indexer/metadata/MetadataIndexer.java#L58

**********************************
// add the fields from crawldb
    if (dbFieldnames != null) {
      for (String metatag : dbFieldnames) {
        Text metadata = (Text) datum.getMetaData().get(new Text(metatag));
        if (metadata != null)
          doc.add(metatag, metadata.toString());
      }
    }
***************************************
The line 58 need to be changed also to this:
Text metadata = (Text) datum.getMetaData().get(new Text(metatag)).toString();

If you agree i can do the jira ticket and patch for this.












----- Mensaje original -----
De: "Markus Jelsma" <[email protected]>
Para: [email protected]
Enviados: Lunes, 6 de Febrero 2017 17:54:39
Asunto: [MASSMAIL]RE: make responseTime native in nutch

Try this:

<property>
  <name>index.db.md</name>
  <value></value>
  <description>
     Comma-separated list of keys to be taken from the crawldb metadata to 
generate fields.
     Can be used to index values propagated from the seeds with the plugin 
urlmeta 
  </description>
</property>

And enable index-metadata (iirc) plugin, you are good to go!

Cheers,
Markus

 
 
-----Original message-----
> From:Eyeris Rodriguez Rueda <[email protected]>
> Sent: Monday 6th February 2017 15:56
> To: [email protected]
> Subject: make responseTime native in nutch
> 
> Hi all.
> Nutch has a configuration that permit save responseTime for every url that is 
> fetched, and this value is stored in crawl Datum under the key _rs_ but not 
> indexed.
> Will be very usefull to index this value also.
> This value is very important in all cases and it is very easy to make this 
> native in nutch.
> A little change to index basic plugin (or other) can make this happend.
> 
> 
> //index responseTime for each url if http.store.responsetime is true
>     boolean property= conf.getBoolean("http.store.responsetime",true);
>     if (property == true){
>       String value=datum.getMetaData().get(new Text("_rs_")).toString();
>       doc.add("responseTime",value);
>     }
> 
> I can do the jira ticket ant patch for this.
> What you think about it ?

//End of email,text below is autogenerated by my email server.
La @universidad_uci es Fidel. Los jóvenes no fallaremos.
#HastaSiempreComandante
#HastalaVictoriaSiempre

Reply via email to