You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Robert Muir (JIRA)" <ji...@apache.org> on 2010/12/22 18:56:06 UTC

[jira] Updated: (LUCENE-2391) Spellchecker uses default IW mergefactor/ramMB settings of 300/10

     [ https://issues.apache.org/jira/browse/LUCENE-2391?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Robert Muir updated LUCENE-2391:
--------------------------------

    Attachment: LUCENE-2391.patch

Here's a patch to speed up the spellchecker build.

* i wired the default RamMB to IWConfig's default
* i didnt mess with the mergefactor for now (because the default is still to optimize)
* but i added an additional 'optimize' parameter so you can update your spellcheck index without re-optimizing.
* when updating, i changed the exists() to work per-segment, so its reasonable if the index isn't optimized.
* the exists() check now bypasses the term dictionary cache, which is stupid and just slows it down.
* we don't do any of the exists() logic if the index is empty (this is the case for i think solr which completely rebuilds
  and doesnt do an incremental update)
* the startXXX, endXXX, and word fields can only contain one term per document. I turned off norms, positions,
  and tf for these.
* the gramXXX field is unchanged, i didnt want to change spellchecker scoring in any way. But we could
  reasonably in the future likely omit norms here too since i think its gonna be very short.

{noformat}
trunk:
scratch build time: 229,803ms
index size: 214,322,200 bytes
no-op update time (updating but there is no new terms to add): 4,619ms

patch:
scratch build time: 99,214ms
index size: 177,781,273 bytes
no-op update time: 2,504ms
{noformat}

i still left the optimize default on, but really i think for most users (e.g. solr) they should set 
mergefactor to be maybe a bit more reasonable, set optimize to false, and the scratch build 
is then must faster (60,000 ms), but the no-op update time is heavier (eg 16,000ms). Still, 
if you are rebuilding on every commit for smallish updates something like 20-30 seconds 
is a lot better than 100seconds, but for now I kept the defaults as is (optimizing every time).


> Spellchecker uses default IW mergefactor/ramMB settings of 300/10
> -----------------------------------------------------------------
>
>                 Key: LUCENE-2391
>                 URL: https://issues.apache.org/jira/browse/LUCENE-2391
>             Project: Lucene - Java
>          Issue Type: Improvement
>          Components: contrib/spellchecker
>            Reporter: Mark Miller
>            Priority: Trivial
>         Attachments: LUCENE-2391.patch
>
>
> These settings seem odd - I'd like to investigate what makes most sense here.

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