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

John Wang commented on LUCENE-2252:
-----------------------------------

bq. I do not understand, I think the fdx index is the raw offset into fdt for 
some doc, and must remain a long if you have more than 2GB total across all 
docs.

as stated earlier,  assuming we are not storing 2GB of data per doc, you don't 
need to keep a long per doc. There are many ways of representing this without 
paying much performance penalty. Off the top of my head, this would work:

since positions are always positive, you can indicate using the first bit to 
see if MAX_INT is reached, if so, add MAX_INT to the masked bits. You get away 
with int per doc.

I am sure with there are other tons of neat stuff for this the Mikes or Yonik 
can come up with :)

bq. John, do you have a specific use case where this is the bottleneck, or are 
you just looking for places to optimize in general?

Hi Yonik, I understand this may not be a common use case. I am trying to use 
Lucene as a store solution. e.g. supporting just get()/put() operations as a 
content store. We wrote something simple in house and I compared it against 
lucene, and the difference was dramatic. So after profiling, just seems this is 
an area with lotsa room for improvement. (posted earlier)

Reasons:
1) Our current setup is that the content is stored outside of the search 
cluster. It just seems being able to fetch the data for rendering/highlighting 
within our search cluster would be good.
2) If the index contains the original data, changing indexing schema, e.g. 
reindexing can be done within each partition/node. Getting data from our 
authoratative datastore is expensive.

Perhaps LUCENE-1912 is the right way to go rather than "fixing" stored fields. 
If you also agree, I can just dup it over.

Thanks

-John


> stored field retrieve slow
> --------------------------
>
>                 Key: LUCENE-2252
>                 URL: https://issues.apache.org/jira/browse/LUCENE-2252
>             Project: Lucene - Java
>          Issue Type: Improvement
>          Components: Store
>    Affects Versions: 3.0
>            Reporter: John Wang
>
> IndexReader.document() on a stored field is rather slow. Did a simple 
> multi-threaded test and profiled it:
> 40+% time is spent in getting the offset from the index file
> 30+% time is spent in reading the count (e.g. number of fields to load)
> Although I ran it on my lap top where the disk isn't that great, but still 
> seems to be much room in improvement, e.g. load field index file into memory 
> (for a 5M doc index, the extra memory footprint is 20MB, peanuts comparing to 
> other stuff being loaded)
> A related note, are there plans to have custom segments as part of flexible 
> indexing feature?

-- 
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-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-dev-h...@lucene.apache.org

Reply via email to