Full text search implementation on IndexedDB
- Annotate the schema with full-text for an index of an object store, which effectively create keyword reference table. keyword reference table is one-to-many relationship table to keyPath of the parent object store. The relationship data type is array, i think it is more efficient than multiple entry of references.
- When putting the object, split keywords from the value of the index and update the keyword reference table referencing keyPath of the object store.
- To query a full text search, open key cursor to keyword reference table giving a range of the search terms. The range will pull out all keyword start with the given search terms. From the result corresponding full record are take from the parent object store. The search is performed in single transaction.
Later key cursor can expand to include related phase.