<style>
/* Changing the layout to use less space for mobiles */
@media screen and (max-device-width: 480px), screen and (-webkit-min-device-pixel-ratio: 2) {
#email-body { min-width: 30em !important; }
#email-page { padding: 8px !important; }
#email-banner { padding: 8px 8px 0 8px !important; }
#email-avatar { margin: 1px 8px 8px 0 !important; padding: 0 !important; }
#email-fields { padding: 0 8px 8px 8px !important; }
#email-gutter { width: 0 !important; }
}
</style>
<div id="email-body">
<table id="email-wrap" align="center" border="0" cellpadding="0" cellspacing="0" style="background-color:#f0f0f0;color:#000000;width:100%;">
<tr valign="top">
<td id="email-page" style="padding:16px !important;">
<table align="center" border="0" cellpadding="0" cellspacing="0" style="background-color:#ffffff;border:1px solid #bbbbbb;color:#000000;width:100%;">
<tr valign="top">
<td bgcolor="#4d5c47" style="background-color:#4d5c47;color:#ffffcc;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;line-height:1;"><img src="http://www.crosswire.org/bugs/s/en_US-l73y3/783/14/_/jira-logo-scaled.png" alt="" style="vertical-align:top;" /></td>
</tr><tr valign="top">
<td id="email-banner" style="padding:32px 32px 0 32px;">
<table align="left" border="0" cellpadding="0" cellspacing="0" width="100%" style="width:100%;">
<tr valign="top">
<td style="color:#505050;font-family:Arial,FreeSans,Helvetica,sans-serif;padding:0;">
<img id="email-avatar" src="http://www.crosswire.org/bugs/secure/useravatar?avatarId=10062" alt="" height="48" width="48" border="0" align="left" style="padding:0;margin: 0 16px 16px 0;" />
<div id="email-action" style="padding: 0 0 8px 0;font-size:12px;line-height:18px;">
<a class="user-hover" rel="dmsmith" id="email_dmsmith" href="http://www.crosswire.org/bugs/secure/ViewProfile.jspa?name=dmsmith" style="color:#000000;">DM Smith</a>
commented on <img src="http://www.crosswire.org/bugs/images/icons/improvement.gif" height="16" width="16" border="0" align="absmiddle" alt="Improvement"> <a style='color:#000000;text-decoration:none;' href='http://www.crosswire.org/bugs/browse/JS-264'>JS-264</a>
</div>
<div id="email-summary" style="font-size:16px;line-height:20px;padding:2px 0 16px 0;">
<a style='color:#000000;text-decoration:none;' href='http://www.crosswire.org/bugs/browse/JS-264'><strong>Create indexer for low memory devices</strong></a>
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr valign="top">
<td id="email-fields" style="padding:0 32px 32px 32px;">
<table border="0" cellpadding="0" cellspacing="0" style="padding:0;text-align:left;width:100%;" width="100%">
<tr valign="top">
<td id="email-gutter" style="width:64px;white-space:nowrap;"></td>
<td>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr valign="top">
<td colspan="2" style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 0 16px 0;width:100%;">
<div class="comment-block" style="background-color:#edf5ff;border:1px solid #dddddd;color:#000000;padding:12px;"><p>I've created a branch for the changes.<br/>
see: <a href="https://github.com/dmsmith/jsword/commit/52ebe9ed4e45755f54da430b92d194774b161aa8">https://github.com/dmsmith/jsword/commit/52ebe9ed4e45755f54da430b92d194774b161aa8</a><br/>
Feedback is greatly appreciated.</p>
<p>I've addressed the above. The example code forced that only one index can be created at a time, which is good for limited memory devices but not for a typical desktop.</p>
<p>The basic changes:</p>
<ol>
        <li>It no longer builds in memory, but uses memory sparingly. The calling program can tune the amount of RAM that is used.</li>
        <li>the calling program can supply an IndexPolicy (new class) by subclassing IndexPolicyAdapter and setting it on an IndexManager. It is the intention that it is per application rather than per book. So it should be set at application start. If desired, I can write a plugin that will allow it to be automatic.</li>
        <li>the call to optimize has been removed. This has been deprecated and subsequently removed (actually renamed with a name to discourage use) in a future Lucene release. The result is an index has more files, but the total size is about the same. I'd like feedback on whether it works on a PDA.</li>
        <li>the reporting of progress has been limited to 100 times per Book.</li>
</ol>
<p>Things left out deliberately:</p>
<ul>
        <li>Didn't get the global key list from PassageKeyFactory. Let's tune the Book.getGlobalKeyList if it uses too much RAM and let's see if it is fast enough.</li>
        <li>Garbage collection. This can be done in with a Progress listener.</li>
</ul>
<p>The things that can be tuned with an IndexPolicy:</p>
<ul>
        <li>Amount of RAM Buffer that is used. While this is Lucene specific, it should be thought of as a hint that any Index can use.</li>
        <li>Whether the synchronization causes only one index to be created at a time or any number.</li>
        <li>Which fields are searchable in the document (Strong's, Morphology, Notes, Xrefs, Titles)</li>
</ul>
<p>Again, many thanks for the code!</p></div>
<div style="color:#505050;padding:4px 0 0 0;"> </div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td><!-- End #email-page -->
</tr>
<tr valign="top">
<td style="color:#505050;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:10px;line-height:14px;padding: 0 16px 16px 16px;text-align:center;">
This message is automatically generated by JIRA.<br />
If you think it was sent incorrectly, please contact your JIRA administrators<br />
For more information on JIRA, see: <a style='color:#000000;' href='http://www.atlassian.com/software/jira'>http://www.atlassian.com/software/jira</a>
</td>
</tr>
</table><!-- End #email-wrap -->
</div><!-- End #email-body -->