LivCos
Cosmos Search
1 Use Cases
1.1 View Text Search
1.2 Content Text Search
1.3 Reference Search
1.4 View Search
1.5 Object Name Search
2 Indexing
2.1 Types of Indexes
2.1.1 View Index
2.1.2 Data Index
2.1.3 Reference Index
2.1.4 Access Index
2.2 Crawler
1 Use Cases
The user can have different motivations to search the Cosmos and is interested in different types of search results.
1.1 View Text Search
The user is looking for all representations, containing a certain keyword or search query.
One content text could be represented in multiple views and so appear in multiple search results.
1.2 Content Text Search
The user is looking for any existing content related to a certain keyword or search query.
The search results should list all the representations of the found data entity.
1.3 Reference Search
The user likes to find all the entities (links,...), referencing a certain data entity. Maybe he wants to change the essential meaning of a content and want to make sure all the referencing contexts still make sense.
The system needs to adapt all referencing entities in case of a rename of an entity ID (refactoring).
1.4 View Search
The user would like to find all the representations of a certain data entity. An likely trigger for this use case is to list all the representations of a Content Text Search result.
1.5 Object Name Search
The user wants to find an object by it's name. Like the file search in an operation system.
2 Indexing
...
2.1 Types of Indexes
--content--
Index | Input | Output | Build | Update | Storage |
---|---|---|---|---|---|
View Index | text pattern | view URLs | Web crawler | Web crawler | host |
Data Index | text pattern | entity IDs | crawler | crawler, on write | host, segments with object |
Reference Index | entity ID | referencing entity IDs | crawler | crawler, on write, verifier | object |
Access Index | entity ID | view URLs | access | access, verfier | object |
Object Index | text pattern | object IDs | access | crawler, on create, rename, verifier | host |
2.1.1 View Index
A word search index on the view level offers a full-text search on all the generated views available.
Input: word
Output: view URLs
Use Case: Search mask for manual text queries.
Crawler: A general Web crawler can generate a view index for the 'web' view.
Storage: With the host.
2.1.2 Data Index
A word search index on the data level offers a full-text search on content available. Read more...
Input: word
Output: entity IDs
Use Case: Queries for the 'ref' editor.
Use Case: Search mask for manual text queries. The results offer view access via all known view URLs (access index).
Crawler: Cosmos crawler. Update on write.
Storage: Index segments with the object. Complete index with the host.
2.1.3 Reference Index
A collection of entities referencing a specific entity.
Input: entity ID
Output: referencing entity IDs
Use Case: Browsing back references.
Use Case: Rename entity ID (refactoring).
Crawler: Cosmos crawler. Update on write.
Storage: With the object.
2.1.4 Access Index
A collection of views representing a specific entity. Read more...
Input: entity ID
Output: view URLs
Use Case: View selection to show context entity.
Crawler: Cosmos access.
Storage: With the object.
2.2 Crawler
Multi-Tier