Hi Tobias,

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.

Troy

On 5/23/21 5:40 PM, Tobias Klein wrote:
>
> 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.
>
> Is there any way to speed up this operation in the SWORD engine?
>
> Best regards,
> Tobias
>
> On 5/23/21 2:20 PM, Tobias Klein wrote:
>>
>> Thanks, Troy.
>>
>> The issue was that I previously hadn't used this:
>>
>> mgr.setGlobalOption("Headings", "On");
>> My new helper function now works after using that call initially.
>>
>> Best regards,
>> Tobias
>>
>> On 5/22/21 11:09 PM, Troy A. Griffitts wrote:
>>> Hi Tobias. Have a look at sword/examples/cmdline/search.cpp. I
>>> believe it takes an optional range parameter.
>>>
>>>
>>>
>>> On May 22, 2021 7:49:48 PM GMT+02:00, Tobias Klein
>>> <cont...@tklein.info> wrote:
>>>
>>>     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:
>>>
>>>         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.
>>>         
>>> https://crosswire.org/svn/sword/trunk/examples/tasks/findHeadings.cpp
>>>         
>>> <https://crosswire.org/svn/sword/trunk/examples/tasks/findHeadings.cpp>
>>>         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:
>>>
>>>             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
>>>             
>>> ------------------------------------------------------------------------
>>>             sword-devel mailing list: sword-devel@crosswire.org
>>>             http://crosswire.org/mailman/listinfo/sword-devel
>>>             <http://crosswire.org/mailman/listinfo/sword-devel>
>>>             Instructions to unsubscribe/change your settings at
>>>             above page 
>>>
>>>         
>>> ------------------------------------------------------------------------
>>>         sword-devel mailing list: sword-devel@crosswire.org
>>>         http://crosswire.org/mailman/listinfo/sword-devel
>>>         <http://crosswire.org/mailman/listinfo/sword-devel>
>>>         Instructions to unsubscribe/change your settings at above page 
>>>
>>>     ------------------------------------------------------------------------
>>>     sword-devel mailing list: sword-devel@crosswire.org
>>>     http://crosswire.org/mailman/listinfo/sword-devel 
>>> <http://crosswire.org/mailman/listinfo/sword-devel>
>>>     Instructions to unsubscribe/change your settings at above page
>>>
>>>
>>> -- 
>>> Sent from my Android device with K-9 Mail. Please excuse my brevity. 
>>
>> _______________________________________________
>> sword-devel mailing list: sword-devel@crosswire.org
>> http://crosswire.org/mailman/listinfo/sword-devel
>> Instructions to unsubscribe/change your settings at above page
>
> _______________________________________________
> sword-devel mailing list: sword-devel@crosswire.org
> http://crosswire.org/mailman/listinfo/sword-devel
> Instructions to unsubscribe/change your settings at above page
_______________________________________________
sword-devel mailing list: sword-devel@crosswire.org
http://crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page

Reply via email to