manifoldcf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Karl Wright (JIRA)" <>
Subject [jira] [Commented] (CONNECTORS-1153) Documents crawled using manifoldcf 1.6 or earlier are needlessly recrawled after upgrade to 1.7 or later
Date Wed, 28 Jan 2015 16:08:34 GMT


Karl Wright commented on CONNECTORS-1153:

Hi Aeham,

I'm not sure anything can be done about (1).  For (2), I will need some clarification.

For (2), the PipelineObjectWithVersions#buildAddPipeline code looks like this:

          needToReindex = (!oldDocumentVersion.equals(newDocumentVersion) ||
            !oldOutputVersion.equals(fullSpec.getStageDescriptionString(outputStage)) ||

I don't see a VersionContext object anywhere here?  "fullSpec.getStageDescriptionString(outputStage)"
returns a String.  "oldOutputVersion" is also declared as a String:

        String oldOutputVersion = fullSpec.getOutputVersionString(i);

Can you clarify what you are seeing?

> Documents crawled using manifoldcf 1.6 or earlier are needlessly recrawled after upgrade
to 1.7 or later
> --------------------------------------------------------------------------------------------------------
>                 Key: CONNECTORS-1153
>                 URL:
>             Project: ManifoldCF
>          Issue Type: Bug
>    Affects Versions: ManifoldCF 1.7, ManifoldCF 1.8
>            Reporter: Aeham Abushwashi
>            Assignee: Karl Wright
>             Fix For: ManifoldCF 1.8.1, ManifoldCF 2.0.1, ManifoldCF 1.9, ManifoldCF 2.1
> After upgrading to mcf 1.7 or later, pre-existing documents are recrawled and re-indexed
even if they have not changed in any way since their last pre-upgrade crawl. The impact can
be significant for large manifold deployments with millions+ static documents.
> There appear to be three contributing factors:
> 1. The empty transformation version of a legacy document is different from the initial
value of "0+0!" - in PipelineObjectWithVersions#buildAddPipeline and IncrementalIngester#checkFetchDocument
> 2. Incorrect comparison of output versions in PipelineObjectWithVersions#buildAddPipeline
where oldOutputVersion is compared to a VersionContext object instead of the version string,
which can be obtained by calling VersionContext#getVersionString - if IPipelineSpecification#getStageDescriptionString
continues to return a VersionContext object, a rename of the method could be useful
> 3. In PipelineObjectWithVersions#buildAddPipeline, a null value for newAuthorityNameString
is not treated the same as an empty string (like it is in other methods)

This message was sent by Atlassian JIRA

View raw message