In a release after 1.0 we want to be able to support all the managed content that the church has or will have available. This will probably mean using the Web Service (https://tech.lds.org/wiki/index.php/Gospel_Library_Web_Service)
However, we will probably take advantage of the ideas that the iPhone team came up with for solving this. Steve Liddle and I had a short discussion on this at the LDSTech Conference. I believe the iPhone team uses what they call zbooks. It is basically a SQLite database that has been zipped. They then download it, unzip, open the downloaded book db and import the records into the main db.
What other ideas do you have?
Supporting Managed Content
- jackcholt
- New Member
- Posts: 34
- Joined: Mon Nov 23, 2009 8:55 am
- Location: Fallbrook, CA, USA
-
- New Member
- Posts: 6
- Joined: Sun Apr 18, 2010 3:49 pm
- Location: Orem, UT, USA
- jackcholt
- New Member
- Posts: 34
- Joined: Mon Nov 23, 2009 8:55 am
- Location: Fallbrook, CA, USA
I agree that there would definitely be some benefit to keeping the books in separate files.
We need to look at how that would affect search. Perhaps once we can safely move to Android 1.6+ (or if we can selectively turn on and off features depending on whether they are supported in the version of Android running on the device) we could harness the native search capabilities in order to give us more flexibility in the storage of the books.
We need to look at how that would affect search. Perhaps once we can safely move to Android 1.6+ (or if we can selectively turn on and off features depending on whether they are supported in the version of Android running on the device) we could harness the native search capabilities in order to give us more flexibility in the storage of the books.
-
- New Member
- Posts: 6
- Joined: Sun Apr 18, 2010 3:49 pm
- Location: Orem, UT, USA
I haven't looked closely at how the lucene index is currently tied back to the DB (lucene doesn't care, you can store any key that makes sense for the application), but I'm guessing it is by the URI, in which case selecting an individual db by URI prefix would just work. And lucene separate lucene indexes are easily "joined" at search time.
-
- New Member
- Posts: 17
- Joined: Mon Apr 19, 2010 1:53 pm
- Location: Orem, UT, USA
The Lucene index is indeed isolated from the database by URI. We can separate the two entirely if we'd like. Also, Lucene has a capability called a "multi-index searcher" that lets us search multiple separate indexes in a single query. I don't know how well that will scale under Android. If it scales, it would be easiest to create one Lucene index for each document database we create. I suspect that any more than a few Lucene indexes will start to slow down fairly quickly.
I'd prefer to group the document databases into major categories that we download as a bundle (e.g., Sunday School, Young Women, ...). If it really is a requirement that we download individual documents, I'm guessing we'll need to combine the Lucene index files for performance reasons anyway. But that's an empirical question -- we'll need to try it and measure performance.
I think the DB insert on Android issue is related to building indexes. I'll bet it's significantly faster if we disable indexes until after new rows are inserted. But I agree that it should be fine to store documents in their own databases according to URI prefix. We'll just need to store sufficient table-of-contents information in the main database so we can navigate to all the installed components.
I'd prefer to group the document databases into major categories that we download as a bundle (e.g., Sunday School, Young Women, ...). If it really is a requirement that we download individual documents, I'm guessing we'll need to combine the Lucene index files for performance reasons anyway. But that's an empirical question -- we'll need to try it and measure performance.
I think the DB insert on Android issue is related to building indexes. I'll bet it's significantly faster if we disable indexes until after new rows are inserted. But I agree that it should be fine to store documents in their own databases according to URI prefix. We'll just need to store sufficient table-of-contents information in the main database so we can navigate to all the installed components.
-
- New Member
- Posts: 17
- Joined: Mon Apr 19, 2010 1:53 pm
- Location: Orem, UT, USA
Another question is whether we even want to support comprehensive full-text search on the device. We could limit search to the scriptures, or we could allow search only via the web using Stewart's online search service. It's cool to be able to do local search, but if it ends up to be a big hassle, maybe our time is better spent on other things first.
- jackcholt
- New Member
- Posts: 34
- Joined: Mon Nov 23, 2009 8:55 am
- Location: Fallbrook, CA, USA
I like the idea of comprehensive search but it may indeed be best to use the web service search. However, the web service has the downside that it would be unavailable where there is no connection to the web service. That would happen under the following scenarios:
- Airplane mode
- Internet tablets (i.e. wifi-only devices) away from wifi
- Phones in rural areas or other areas with spotty coverage
- "Third-world" areas
-
- New Member
- Posts: 17
- Joined: Mon Apr 19, 2010 1:53 pm
- Location: Orem, UT, USA
Probably would be much easier to continue down the Lucene path rather than cache material coming from the web service. The issue with Lucene is the amount of storage required for its indexes. Personally, I have plenty of space I'd be happy to allocate to those indexes (and I'd much rather have the local/offline capability). What I wonder about is whether typical users would rather save the space and use the online search, or consume the storage space and have offline search. We could add analytics capabilities to the GL app to see what features the folks actually use.
-
- Church Employee
- Posts: 2361
- Joined: Tue Jun 30, 2009 8:12 am
- Location: South Jordan, UT, USA
Could you make that a user preference? That way for those who have the space the offline advantages could be used, but for those who are tight on space they would still be able to use the app relatively well.swliddle wrote:What I wonder about is whether typical users would rather save the space and use the online search, or consume the storage space and have offline search.