<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Hi Tobias,</p>
<p>What's happening when you do an EntryAttributes search, is that
each entry is pulled from storage and all tags processed to build
the attributes map for that entry, then a pattern match is
attempted against the attributes which match your attribute key
map. Loading up each entry and processing all tags on a module
which is richly marked up like the KJV module, for example, can
take a bit of time. Compiling SWORD with optimization can greatly
reduce the time. I can also make a profiling pass on that action
and see if there is anything I can clean up, but generally, for
unindexed searches, we try to hit <1sec on desktops and
<3sec on handhelds for a richly marked up Bible like the KJV.</p>
<p>Troy<br>
</p>
<div class="moz-cite-prefix">On 5/23/21 5:40 PM, Tobias Klein wrote:<br>
</div>
<blockquote type="cite"
cite="mid:e049e582-b0b9-f42e-0fdb-81b34a7d099f@tklein.info">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<p>When I extract the section headers using the search function
this takes ~700ms for Psalms (on my Core i7, measured on
JavaScript side). I suppose it is much slower on a tablet or
phone.</p>
<p>Is there any way to speed up this operation in the SWORD
engine?<br>
<br>
Best regards,<br>
Tobias<br>
</p>
<div class="moz-cite-prefix">On 5/23/21 2:20 PM, Tobias Klein
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:693db61b-a949-f607-16b4-ba3e81cf04d4@tklein.info">
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8">
<p>Thanks, Troy.</p>
<p>The issue was that I previously hadn't used this:</p>
<pre style="color: rgb(0, 0, 0); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; overflow-wrap: break-word; white-space: pre-wrap;">mgr.setGlobalOption("Headings", "On");</pre>
<div class="moz-cite-prefix">My new helper function now works
after using that call initially.<br>
</div>
<div class="moz-cite-prefix"><br>
Best regards,<br>
Tobias<br>
</div>
<div class="moz-cite-prefix"><br>
</div>
<div class="moz-cite-prefix">On 5/22/21 11:09 PM, Troy A.
Griffitts wrote:<br>
</div>
<blockquote type="cite"
cite="mid:E1B40477-C913-410B-A1DE-F92E34D5F305@crosswire.org">
<meta http-equiv="content-type" content="text/html;
charset=UTF-8">
Hi Tobias. Have a look at sword/examples/cmdline/search.cpp. I
believe it takes an optional range parameter.<br>
<br>
<br>
<br>
<div class="gmail_quote">On May 22, 2021 7:49:48 PM GMT+02:00,
Tobias Klein <a class="moz-txt-link-rfc2396E"
href="mailto:contact@tklein.info" moz-do-not-send="true"><contact@tklein.info></a>
wrote:
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt
0.8ex; border-left: 1px solid rgb(204, 204, 204);
padding-left: 1ex;">
<pre class="k9mail">Hi Troy,
I can't seem to get the scope parameter of the search function right ...
I either get crashes or no results.
How do I have to initialize the scope parameter for the module search so
that I get the headings for one particular Bible book as search results?
Best regards,
Tobias
On 4/12/21 9:07 PM, Troy A. Griffitts wrote:
<blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;"> Sure Tobias,
module->getEntryAttributes() will allow you to pull the headings from a
verse, and
an Entry Attributes search for '/Heading' will give you only the verses
with Heading entries attributes.
I've thrown together a quick example here, which you can use with
something like:
./showHeadings NASB Matt-John
which will give you the headings from the Gospels.
<a href="https://crosswire.org/svn/sword/trunk/examples/tasks/findHeadings.cpp" moz-do-not-send="true">https://crosswire.org/svn/sword/trunk/examples/tasks/findHeadings.cpp</a>
Creating this example, I found I needed to fix a bug in the engine. The
engine Entry Attributes search lets you search for values in the entry
attributes (e.g., a Strong's number 1234). In your use case, when
searching, you don't care about the value; you only care about
presence. This wasn't working, but simple presence can now be searched
for with my latest commit.
Hope this helps,
Troy
On 4/12/21 9:31 AM, Tobias Klein wrote:
<blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #ad7fa8; padding-left: 1ex;"> Hi,
I have been getting a request from a user to render section headings independently of the currently opened bible translation module.
So for example when opening the KJV still using the section/chapter headers of the NASB.
This would be useful in those cases when the respective bible translation module does not come with section/chapter headers, but another one does.
A requirement would be to efficiently extract section/chapter headers from a module using the SWORD API. As of now I only see that you can iterate over the verses of a book and individually scan each verse for the headers. Is there a more efficient way of doing that?
Another use case could be to render a book outline. This is what I am already doing now in Ezra, but in a way that is not so clean (I am traversing the DOM looking for all section header elements of the current book).
Best regards,
Tobias<hr> sword-devel mailing list: <a class="moz-txt-link-abbreviated" href="mailto:sword-devel@crosswire.org" moz-do-not-send="true">sword-devel@crosswire.org</a>
<a href="http://crosswire.org/mailman/listinfo/sword-devel" moz-do-not-send="true">http://crosswire.org/mailman/listinfo/sword-devel</a>
Instructions to unsubscribe/change your settings at above page
</blockquote><hr>sword-devel mailing list: <a class="moz-txt-link-abbreviated" href="mailto:sword-devel@crosswire.org" moz-do-not-send="true">sword-devel@crosswire.org</a>
<a href="http://crosswire.org/mailman/listinfo/sword-devel" moz-do-not-send="true">http://crosswire.org/mailman/listinfo/sword-devel</a>
Instructions to unsubscribe/change your settings at above page
</blockquote><hr>sword-devel mailing list: <a class="moz-txt-link-abbreviated" href="mailto:sword-devel@crosswire.org" moz-do-not-send="true">sword-devel@crosswire.org</a>
<a href="http://crosswire.org/mailman/listinfo/sword-devel" moz-do-not-send="true">http://crosswire.org/mailman/listinfo/sword-devel</a>
Instructions to unsubscribe/change your settings at above page</pre>
</blockquote>
</div>
<br>
-- <br>
Sent from my Android device with K-9 Mail. Please excuse my
brevity. </blockquote>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<pre class="moz-quote-pre" wrap="">_______________________________________________
sword-devel mailing list: <a class="moz-txt-link-abbreviated" href="mailto:sword-devel@crosswire.org" moz-do-not-send="true">sword-devel@crosswire.org</a>
<a class="moz-txt-link-freetext" href="http://crosswire.org/mailman/listinfo/sword-devel" moz-do-not-send="true">http://crosswire.org/mailman/listinfo/sword-devel</a>
Instructions to unsubscribe/change your settings at above page</pre>
</blockquote>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<pre class="moz-quote-pre" wrap="">_______________________________________________
sword-devel mailing list: <a class="moz-txt-link-abbreviated" href="mailto:sword-devel@crosswire.org">sword-devel@crosswire.org</a>
<a class="moz-txt-link-freetext" href="http://crosswire.org/mailman/listinfo/sword-devel">http://crosswire.org/mailman/listinfo/sword-devel</a>
Instructions to unsubscribe/change your settings at above page</pre>
</blockquote>
</body>
</html>