[
https://issues.apache.org/jira/browse/LUCENE-3105?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13034639#comment-13034639
]
Earwin Burrfoot commented on LUCENE-3105:
-----------------------------------------
StringInterner is in fact faster than CHM. And is compatible with
String.intern(), ie - it returns the same String instances. It also won't eat
up memory if spammed with numerous unique strings (which is a strange feature,
but people requested that).
In Lucene 4.0 all of this is moot anyway, fields there are strongly separated
and intern() is not used.
> String.intern() calls slow down IndexWriter.close() and IndexReader.open()
> for index with large number of unique field names
> ----------------------------------------------------------------------------------------------------------------------------
>
> Key: LUCENE-3105
> URL: https://issues.apache.org/jira/browse/LUCENE-3105
> Project: Lucene - Java
> Issue Type: Bug
> Components: core/index
> Affects Versions: 3.1
> Reporter: Mark Kristensson
> Attachments: LUCENE-3105.patch
>
>
> We have one index with several hundred thousand unqiue field names (we're
> optimistic that Lucene 4.0 is flexible enough to allow us to change our index
> design...) and found that opening an index writer and closing an index reader
> results in horribly slow performance on that one index. I have isolated the
> problem down to the calls to String.intern() that are used to allow for quick
> string comparisons of field names throughout Lucene. These String.intern()
> calls are unnecessary and can be replaced with a hashmap lookup. In fact,
> StringHelper.java has its own hashmap implementation that it uses in
> conjunction with String.intern(). Rather than using a one-off hashmap, I've
> elected to use a ConcurrentHashMap in this patch.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]