lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael McCandless (JIRA)" <j...@apache.org>
Subject [jira] Commented: (LUCENE-2335) optimization: when sorting by field, if index has one segment and field values are not needed, do not load String[] into field cache
Date Tue, 23 Mar 2010 09:12:27 GMT

    [ https://issues.apache.org/jira/browse/LUCENE-2335?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12848628#action_12848628
] 

Michael McCandless commented on LUCENE-2335:
--------------------------------------------

bq. I have used some time tinkering with the problem of spanning multiple segments and it
seems to me that the generation of a "global" list of sorted ordinals should be feasible without
too much overhead.

If you can this it'll be super-awesome :)  The holy grail of "sort by String"...

bq. As for facets, they are equivalent to sorting in the aspect that resolving the actual
Strings can be delayed until the very end.

Ahh OK.

bq. I hope to have a patch out soon for SegmentReader so that it is possible to perform a
sorted search "the Lucene way" rather than the hack I use in my proof of concept.

OK I'm looking forward to it!

bq. However, vacation starts friday...

Have a good vacation :)

> optimization: when sorting by field, if index has one segment and field values are not
needed, do not load String[] into field cache
> ------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: LUCENE-2335
>                 URL: https://issues.apache.org/jira/browse/LUCENE-2335
>             Project: Lucene - Java
>          Issue Type: Improvement
>          Components: Search
>            Reporter: Michael McCandless
>            Priority: Minor
>             Fix For: 3.1
>
>
> Spinoff from java-dev thread "Sorting with little memory: A suggestion", started by Toke
Eskildsen.
> When sorting by SortField.STRING we currently ask FieldCache for a StringIndex on that
field.
> This can consumes tons of RAM, when the values are mostly unique (eg a title field),
as it populates both int[] ords as well as String[] values.
> But, if the index is only one segment, and the search sets fillFields=false, we don't
need the String[] values, just the int[] ords.  If the app needs to show the fields it can
pull them (for the 1 page) from stored fields.
> This can be a potent optimization -- alot of RAM saved -- for optimized indexes.
> When fixing this we must take care to share the int[] ords if some queries do fillFields=true
and some =false... ie, FieldCache will be called twice and it should share the int[] ords
across those invocations.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-dev-help@lucene.apache.org


Mime
View raw message