Opened 16 years ago

Closed 16 years ago

#279 closed defect (fixed)

Remote backend has bad performance due to termlist access

Reported by: Richard Boulton Owned by: Richard Boulton
Priority: normal Milestone: 1.0.7
Component: Matcher Version: 1.0.6
Severity: normal Keywords:
Cc: Blocked By:
Blocking: Operating System: All

Description

When searching multiple databases with the remote backend, the matcher attempts to normalise the percentage weights based on the terms matching the top document. This is currently implemented by accessing the termlist, which is particular inefficient for remote documents, and results in very slow searches. The proper fix for this is related to ticket #216, but the fix for that is likely not to be suitable for backport to the 1.0 branch. However, it may be possible to make a simple fix for remote backends which is backportable, by calculating the percentage weight at the server end, rather than relying on the client end to normalise it.

Attachments (1)

remotepercentscale.patch (4.8 KB ) - added by Richard Boulton 16 years ago.
Patch special-casing the percentage calculation for remote databases

Download all attachments as: .zip

Change History (5)

by Richard Boulton, 16 years ago

Attachment: remotepercentscale.patch added

Patch special-casing the percentage calculation for remote databases

comment:1 by Richard Boulton, 16 years ago

Attached a patch which special cases the calculation of the percentage factor for remote databases, by using the value supplied by the remote end. This ought to help speed things up, without changing behaviour in any other way, but is untested (well, it passes the testsuite, but I've not checked it's performance characteristics yet, and I'm also pretty certain that the testsuite doesn't have adequate coverage of the percentage calculation stuff).

comment:2 by Richard Boulton, 16 years ago

Status: newassigned

comment:3 by Richard Boulton, 16 years ago

Applied in revision [10822] to head. Still needs backporting to 1.0.

comment:4 by Olly Betts, 16 years ago

Resolution: fixed
Status: assignedclosed

Backported for 1.0.7.

Note: See TracTickets for help on using tickets.