[ 
https://issues.apache.org/jira/browse/NUTCH-656?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julien Nioche updated NUTCH-656:
--------------------------------

    Attachment: NUTCH-656.v3.patch

Thanks for your comments Seb. This new patch addresses some of the issues you 
pointed out  : 

{quote}
shouldn't this be in package o.a.n.crawl instead of o.a.n.indexer? Only CrawlDb 
is involved, although it's related to indexing, of course.
{quote}

done. it does not call the indexers directly and only modifies the crawldb so 
this is indeed the right place for it

{quote}
got a NPE if signature is null (may happen for successfully fetched docs, e.g., 
if parsing is skipped because of truncated content): we can skip docs without 
signature, they are not indexed and, consequently, never duplicates.
{quote}

fixed  


{quote}
Status db_duplicate is used only in CleaningJob. Shouldn't it be used also in 
IndexerMapReduce? If DeduplicationJob is run before IndexingJob duplicates are 
even not indexed. Also indexer backends which do not allow to remove docs after 
indexing would profit.
{quote}

I added some code in IndexerMapReduce so that entries marked as duplicates are 
now sent for deletion 

{quote}
In a continuous crawl it may happen that a deduplicated doc loses this status 
because the doc it is a duplicate of disappears. DeduplicationJob does not 
reset the duplicate status in this case. The doc get indexed not before it is 
re-fetched. To trigger a re-index is hard because we would need the old segment 
with fetch content. So we can ignore this problem (for now). Right?
{quote}

yes let's keep it simple for now

Will commit this shortly and will remove the indexer.solr subpackage in a 
separate JIRA

Thanks for taking the time to review this


> DeleteDuplicates based on crawlDB only 
> ---------------------------------------
>
>                 Key: NUTCH-656
>                 URL: https://issues.apache.org/jira/browse/NUTCH-656
>             Project: Nutch
>          Issue Type: Wish
>          Components: indexer
>            Reporter: Julien Nioche
>            Assignee: Julien Nioche
>         Attachments: NUTCH-656.patch, NUTCH-656.v2.patch, NUTCH-656.v3.patch
>
>
> The existing dedup functionality relies on Lucene indices and can't be used 
> when the indexing is delegated to SOLR.
> I was wondering whether we could use the information from the crawlDB instead 
> to detect URLs to delete then do the deletions in an indexer-neutral way. As 
> far as I understand the content of the crawlDB contains all the elements we 
> need for dedup, namely :
> * URL 
> * signature
> * fetch time
> * score
> In map-reduce terms we would have two different jobs : 
> * read crawlDB and compare on URLs : keep only most recent element - oldest 
> are stored in a file and will be deleted later
> * read crawlDB and have a map function generating signatures as keys and URL 
> + fetch time +score as value
> * reduce function would depend on which parameter is set (i.e. use signature 
> or score) and would output as list of URLs to delete
> This assumes that we can then use the URLs to identify documents in the 
> indices.
> Any thoughts on this? Am I missing something?
> Julien



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to