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