Hi Troy,<div><br></div><div>Below you suggest</div><blockquote class="webkit-indent-blockquote" style="margin: 0 0 0 40px; border: none; padding: 0px;"><div>The really interesting thing is that for the first time, Android might</div>
<div>be a real opportunity to use both implementations for different purposes</div><div>in the same application.</div><div><br></div></blockquote><div>I had not considered that architecture but I would be interested to hear your thoughts if you have considered this in any more detail.</div>
<div><br></div><div>Thanks</div><div>Martin</div><div><br><div class="gmail_quote">On 28 October 2010 12:52, Troy A. Griffitts <span dir="ltr">&lt;<a href="mailto:scribe@crosswire.org">scribe@crosswire.org</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Hey Martin,<br>
<br>
You probably know this, but the difference between JSword and the SWORD<br>
C++ engine is obviously that the C++ engine is written in C++ and JSword<br>
is an alternate engine written in Java.<br>
<br>
Bishop uses the Java jni bindings to the C++ engine.  In fact bishop is<br>
simply a test harness for the bindings right now.  I wouldn&#39;t consider<br>
it even close to a public frontend.<br>
<br>
Both JSword and the SWORD C++ engine work against the same installed set<br>
of books, so you should be able to use either or both in your frontend.<br>
<br>
The C++ Engine will require about a 700K native bundle in your app and<br>
the Java classes to use it are located in SVN here:<br>
<br>
<a href="http://crosswire.org/svn/sword/trunk/bindings/java-jni/src/org/crosswire/android/sword/" target="_blank">http://crosswire.org/svn/sword/trunk/bindings/java-jni/src/org/crosswire/android/sword/</a><br>
<br>
(you can simply grab the binary blob out of the bishop.apk I posted if<br>
you don&#39;t want to learn how to use the NDK to compile it yourself.  In<br>
fact I think the total size of the bishop.apk is mostly just the 700k<br>
for the binary blob).<br>
<br>
The really interesting thing is that for the first time, Android might<br>
be a real opportunity to use both implementations for different purposes<br>
in the same application.<br>
<br>
Anyway, I don&#39;t think the bishop source will be particularly interesting<br>
to you.  The 3 Java classes at the SVN link above are a fairly<br>
straightforward interface to the engine.  But still, if you&#39;d like to<br>
see it, I&#39;ve been periodically posting the sources from my public home<br>
on CrossWire.  Here is the latest bundle:<br>
<br>
<a href="http://crosswire.org/~scribe/bishop-20101026.tar.gz" target="_blank">http://crosswire.org/~scribe/bishop-20101026.tar.gz</a><br>
<br>
<br>
Hope this is helpful.<br>
<br>
Troy<br>
<div class="im"><br>
<br>
<br>
<br>
On 10/27/2010 09:07 PM, Martin Denham wrote:<br>
&gt; Hi Troy,<br>
&gt;<br>
&gt; I didn&#39;t realise unindexed searches could be done so quickly.  Can you<br>
&gt; point me to the relevant source for the unindexed search and Bishop (I<br>
&gt; don&#39;t know my way around the Crosswire svn repository).<br>
&gt;<br>
&gt; Kind regards<br>
&gt; Martin<br>
&gt;<br>
&gt; On 27 October 2010 20:34, Troy A. Griffitts &lt;<a href="mailto:scribe@crosswire.org">scribe@crosswire.org</a><br>
</div><div class="im">&gt; &lt;mailto:<a href="mailto:scribe@crosswire.org">scribe@crosswire.org</a>&gt;&gt; wrote:<br>
&gt;<br>
&gt;     Thanks Brian,<br>
&gt;<br>
&gt;     I am currently of the persuasion that indexed searching is not the<br>
&gt;     way to go on Android. 4 seconds is quite an acceptable speed to wait<br>
&gt;     for a search and no index creation time or versioning headaches.<br>
&gt;     Searches can also be more easily customised.  For example, full text<br>
&gt;     searches (i.e. unindexed searches) in the engine currently support<br>
&gt;     regex and searching on any entryAttribute created by any filter.<br>
&gt;<br>
&gt;     There are benefits to indexed searching of course, especially when<br>
&gt;     dealing with searches across a large library of books, but for a<br>
&gt;     simple handheld reader of just a few books, I&#39;m still leaning toward<br>
&gt;     favoring unindexed if the results can be returned in under 7 seconds.<br>
&gt;<br>
&gt;     But we support both so it is a matter of use case and preference really.<br>
&gt;<br>
&gt;     For example, in my personal study, I typically only search a single<br>
&gt;     Greek text or English text. I very seldom search a commentary or<br>
&gt;     lexicon.  So I might decide to index my 2 frequently searched<br>
&gt;     modules and be willing to wait 10 seconds to brute force search any<br>
&gt;     of my other 200 modules and not have them indexed.  In reality, on<br>
&gt;     my laptop the speeds to brute force are nearly instant anyway.<br>
&gt;<br>
&gt;     Thanks for the numbers.  Any thoughts?<br>
&gt;<br>
&gt;     Troy<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;     &quot;Brian J. Dumont&quot; &lt;<a href="mailto:bdumont@ameritech.net">bdumont@ameritech.net</a><br>
</div><div><div></div><div class="h5">&gt;     &lt;mailto:<a href="mailto:bdumont@ameritech.net">bdumont@ameritech.net</a>&gt;&gt; wrote:<br>
&gt;<br>
&gt;     &gt;Troy,<br>
&gt;     &gt;<br>
&gt;     &gt;Search times for an HTC Evo running standard HTC-version of Android<br>
&gt;     2.2:<br>
&gt;     &gt;<br>
&gt;     &gt;God love world: 4.576s<br>
&gt;     &gt;God: 12.111s<br>
&gt;     &gt;<br>
&gt;     &gt;As a side note, if we&#39;re looking for speed it seems like it would make<br>
&gt;     &gt;the most sense to focus on indexed searches.  &quot;And-Bible&quot;, which uses<br>
&gt;     &gt;Java but indexed searches, seems to get roughly:<br>
&gt;     &gt;<br>
&gt;     &gt;God love world: 1s<br>
&gt;     &gt;God: 7s<br>
&gt;     &gt;<br>
&gt;     &gt;Thanks for your work!<br>
&gt;     &gt;Brian<br>
&gt;     &gt;<br>
&gt;     &gt;<br>
&gt;     &gt;<br>
&gt;     &gt;On 10/26/2010 07:43 PM, Troy A. Griffitts wrote:<br>
&gt;     &gt;&gt; OK, a couple things.  Changed result list logic from using<br>
&gt;     String+= to<br>
&gt;     &gt;&gt; using StringBuffer.append and cut out the time delay between the<br>
&gt;     end of<br>
&gt;     &gt;&gt; the search and the display of the large result set.<br>
&gt;     &gt;&gt;<br>
&gt;     &gt;&gt; I also have some numbers from my old G1 running Cyanogen 1.6<br>
&gt;     (Android 2.2+).<br>
&gt;     &gt;&gt;<br>
&gt;     &gt;&gt; Today&#39;s build:<br>
&gt;     &gt;&gt;<br>
&gt;     &gt;&gt; <a href="http://crosswire.org/~scribe/bishop-20101026.apk" target="_blank">http://crosswire.org/~scribe/bishop-20101026.apk</a><br>
&gt;     &gt;&gt;<br>
&gt;     &gt;&gt;<br>
&gt;     &gt;&gt;<br>
&gt;     &gt;&gt; KJV &quot;God love world&quot; (6 results)<br>
&gt;     &gt;&gt;<br>
&gt;     &gt;&gt; 4.722 seconds                G2      stock Android 2.2<br>
&gt;     &gt;&gt; 19.485 seconds               G1      Cyanogen 1.6 / Android 2.2<br>
&gt;     &gt;&gt;<br>
&gt;     &gt;&gt;<br>
&gt;     &gt;&gt;<br>
&gt;     &gt;&gt; KJV &quot;God&quot; (3578 results)<br>
&gt;     &gt;&gt;<br>
&gt;     &gt;&gt; 13.966 seconds               G2      stock Android 2.2<br>
&gt;     &gt;&gt; 52.535 seconds               G1      Cyanogen 1.6 / Android 2.2<br>
&gt;     &gt;&gt;<br>
&gt;     &gt;&gt;<br>
&gt;     &gt;&gt; _______________________________________________<br>
&gt;     &gt;&gt; sword-devel mailing list: <a href="mailto:sword-devel@crosswire.org">sword-devel@crosswire.org</a><br>
</div></div>&gt;     &lt;mailto:<a href="mailto:sword-devel@crosswire.org">sword-devel@crosswire.org</a>&gt;<br>
<div class="im">&gt;     &gt;&gt; <a href="http://www.crosswire.org/mailman/listinfo/sword-devel" target="_blank">http://www.crosswire.org/mailman/listinfo/sword-devel</a><br>
&gt;     &gt;&gt; Instructions to unsubscribe/change your settings at above page<br>
&gt;     &gt;&gt;<br>
&gt;     &gt;&gt;<br>
&gt;     &gt;<br>
&gt;     &gt;<br>
&gt;     &gt;_______________________________________________<br>
&gt;     &gt;sword-devel mailing list: <a href="mailto:sword-devel@crosswire.org">sword-devel@crosswire.org</a><br>
</div>&gt;     &lt;mailto:<a href="mailto:sword-devel@crosswire.org">sword-devel@crosswire.org</a>&gt;<br>
<div class="im">&gt;     &gt;<a href="http://www.crosswire.org/mailman/listinfo/sword-devel" target="_blank">http://www.crosswire.org/mailman/listinfo/sword-devel</a><br>
&gt;     &gt;Instructions to unsubscribe/change your settings at above page<br>
&gt;<br>
&gt;     --<br>
&gt;     Sent from my Android phone with K-9 Mail. Please excuse my brevity.<br>
&gt;<br>
&gt;     _______________________________________________<br>
&gt;     mobile-devel mailing list<br>
</div>&gt;     <a href="mailto:mobile-devel@crosswire.org">mobile-devel@crosswire.org</a> &lt;mailto:<a href="mailto:mobile-devel@crosswire.org">mobile-devel@crosswire.org</a>&gt;<br>
<div><div></div><div class="h5">&gt;     <a href="http://www.crosswire.org/mailman/listinfo/mobile-devel" target="_blank">http://www.crosswire.org/mailman/listinfo/mobile-devel</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; mobile-devel mailing list<br>
&gt; <a href="mailto:mobile-devel@crosswire.org">mobile-devel@crosswire.org</a><br>
&gt; <a href="http://www.crosswire.org/mailman/listinfo/mobile-devel" target="_blank">http://www.crosswire.org/mailman/listinfo/mobile-devel</a><br>
<br>
<br>
_______________________________________________<br>
mobile-devel mailing list<br>
<a href="mailto:mobile-devel@crosswire.org">mobile-devel@crosswire.org</a><br>
<a href="http://www.crosswire.org/mailman/listinfo/mobile-devel" target="_blank">http://www.crosswire.org/mailman/listinfo/mobile-devel</a><br>
</div></div></blockquote></div><br></div>