Hi All.

I am using Lucene as the backbone of a 'Smart Search'.

I have a layer over search that extensively analyzes results at runtime to
bucket them. I do trim the resultset, but only after this procesing since
their are non document weights that are combined with the result scores, and
the hits are then reordered/modified.

This needs to essentially get all docs (cause there's some field level
analysis), and the score for each upfront, and it seems to be taking forever
to do for a large no of hits. The documents themselves are tiny - less than
half a k usually.  Hit.doc() and .score() seem to be where its taking time -
quite as cautioned in the javadocs.

Another peculiarity : the query is basically "keywords" which hits all
fields, and you can additionally make it more precise by certain fields as
field:value. For the latter case, for a similar number of hits, the same
iteration above is much quicker than in the case where a similar number of
hits is found by the keywords hitting all fields. The query is NOT visibly
slower - but the iteration is. Something to do with how spread out across
the index the hits are ?

Is there a possible workaround for the .doc()/.score() access ? Can
RAMDirectory be used only for searches over a "regular" FSDirectory index -
and is it usable when the index size is a multiple of available RAM (this is
on RH9 or fedora core) ?

Thanks in advance,
Sameer

--
Sameer Shisodia  Bangalore
[EMAIL PROTECTED]

Reply via email to