From d22719339f3d1210ace801413ba5ef5f87f8c630 Mon Sep 17 00:00:00 2001 From: YANG-DB Date: Tue, 13 Sep 2022 00:59:20 -0700 Subject: [PATCH 1/3] add search relevancy workbench high level Requirements --- docs/plan/SearchRelevancyWorkbench.md | 140 ++++++++++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 docs/plan/SearchRelevancyWorkbench.md diff --git a/docs/plan/SearchRelevancyWorkbench.md b/docs/plan/SearchRelevancyWorkbench.md new file mode 100644 index 0000000..30c3da3 --- /dev/null +++ b/docs/plan/SearchRelevancyWorkbench.md @@ -0,0 +1,140 @@ +# Search Relevancy Dashboard deliverables + +This document represents a high level composition of tasks and architecture which will be taken to implement +the search relevancy workbench. + +## Workbench Components + +### Search Configuration +The 'Search Configuration' is the search planning and construction process that is taken prior of running the actual search. +This 'configuration' may include composition of sub elements and chaining of different search related sections such as + - Query Rewrite + - Query Context/Scoping + - Result ranking + +For simplicity and standardization we will define the configuration processes as the construction of a chain of transformations, each transformation has its own purpose and +agenda. + +The only requirement here is to be able to chain together different transformations - meaning that the output of one transformation can be +chained as the input of the following transformation. + + +### Search Interface +The 'Search Interface' is the actual search process that is called using the previously created search config. +It includes the actual query that is given by the customer and possibly additional metadata related context about the tenant executing the query. + +---- + +### User Interface +The next section describes the User Interface components that are driving the work flow of the workbench. + + 1. Create high level left-menu for Relevancy Workbench + 2. Create tabs for Search interface and Search Configs + - ***Search Config Tab*** + 1. Table list + 2. Allow CRUD Operations button on the table list + 3. Create search config UI: + 1. metadata input: name, tags, description + 2. index input: index/index pattern + 3. Execution Chain Input: DSL Query with templates for End user query input + + 4. ***Search Interface Tab*** + 1. Table list + 2. Allow CRUD Operations button on the table list + 3. Create search interface UI: + 1. Modal pop-up with input-metadata for name, tags, description + 2. Redirect to empty search interface + - [Limit to 1] _Option for adding existing search configs via side panel_ [similar to operational panels] + - [Limit to 1] _Option to create new search configs (via redirect to search config creation page)_ + 6. End user query input bar [store browser session] + 7. Results table facet [similar to events analytics] + 8. Field Selector facet [similar to events analytics] + 9. Document Flyout - ability to select a particular document from the result table and see complete json of the document [similar to events analytics] + 5. **Compare** - Ability to select 2 search configs for comparison in runtime + 1. **Compare Search Configs**: + 1. Click compare button + 2. Flyout Select 2nd Search Config + 3. Split the result facet in two + 4. synced Field Selector facet + 5. Double Document Flyout + 2. **Compare Meta-Data** + 1. check difference in DSL queries + 3. **Compare live search** result with a saved result *(maybe v2)* + 1. check difference between live result set and a golden set/previous saved result + - Go back single view from compare + 6. **Save search meta-data** [saved explicitly by user] + - Fields: + - name + - description + - tagging + _Data is saved in the plugin index *(v1)_ + + 14. **Save search result configuration** [saved explicitly by user] *(maybe v2)* + - Fields: + - name + - description + - tagging + - Index or S3/external storage to save the results + - numbers of results to be saved per search + 7. *Saved Searches Tab* + 1. UI tables + 1. Saved Meta-data + 1. Generated DSL query + 2. timestamp + 3. name + 4. description + 5. tagging + 2. Saved Results *(maybe v2)* [top n/200/500] _(new result-index -? or global mapping index -?)_ + 1. timestamp + 2. name + 3. description + 4. tagging +--- +### Backend +The next section describes the Backend components that are driving the work flow of the workbench. + 1. Plugin Index: “.opensearch-relevancy” + + - **Components**: + 1. Search Config + 2. Search interface + 3. Saved Search Meta-data +--- + - **API** + 1. Create object POST + 2. Search object GET + 1. by type + 2. by id/ ids + 3. by names + 4. with sorted fields + 5. form index/ max-Items + 3. Update object PUT + 4. Delete object DELETE + - **Security** + 1. User access check + 2. Tenant based check + - **Mapping** + 1. We can use composite mapping + 2. Supported Object types: + - search_config: + - saved_interface: + - search_meta_data: +--- +### **Search Analytics Requirement** + + - Users should be able to: + - view aggregated analytics with data from all Search Apps. + - filter the analytics view + - by search app name, tags using PPL Query. + - by time interval. + - see total number of: + - queries + - total number of queries with no results + - total result-clicks in the analytics + - stats on ranks of clicks. + - see graphs for: + - total queries + - queries without results per hour/day/month (based on time interval selected by user). + - see tables of + - top queries + - top queries with no results. + From 1470977df9361e48d6b6b611050802dd43b68837 Mon Sep 17 00:00:00 2001 From: YANG-DB Date: Tue, 13 Sep 2022 15:23:11 -0700 Subject: [PATCH 2/3] add search relevancy workbench high level Requirements --- docs/plan/SearchRelevancyWorkbench.md | 100 ++++++++++++++++---------- 1 file changed, 63 insertions(+), 37 deletions(-) diff --git a/docs/plan/SearchRelevancyWorkbench.md b/docs/plan/SearchRelevancyWorkbench.md index 30c3da3..39b6b81 100644 --- a/docs/plan/SearchRelevancyWorkbench.md +++ b/docs/plan/SearchRelevancyWorkbench.md @@ -28,10 +28,19 @@ It includes the actual query that is given by the customer and possibly addition ### User Interface The next section describes the User Interface components that are driving the work flow of the workbench. +```text +[V-1]: referring to the first release of this feature +[V-2]: referring to the following release of this feature +``` 1. Create high level left-menu for Relevancy Workbench 2. Create tabs for Search interface and Search Configs - ***Search Config Tab*** 1. Table list + + | Name | Desc | Index | Tags | Modified | + |-------------|----------|------|----------------|--------| + | testConf | sample conf | _test | ... | 01-Jan-2023 | + 2. Allow CRUD Operations button on the table list 3. Create search config UI: 1. metadata input: name, tags, description @@ -40,26 +49,33 @@ The next section describes the User Interface components that are driving the wo 4. ***Search Interface Tab*** 1. Table list - 2. Allow CRUD Operations button on the table list - 3. Create search interface UI: + + | Name | Desc | Tags | Index | Params | Modified | #Results | + |------|--------|------|-------|---------------------|-------------|----------| + | test | sample | | _test | query:'hello world' | 02-Jan-2023 | 12 | + + 3. Allow CRUD Operations button on the table list + 4. Create search interface UI: 1. Modal pop-up with input-metadata for name, tags, description 2. Redirect to empty search interface - - [Limit to 1] _Option for adding existing search configs via side panel_ [similar to operational panels] - - [Limit to 1] _Option to create new search configs (via redirect to search config creation page)_ - 6. End user query input bar [store browser session] + - [V-1] _Option for adding existing search configs via side panel_ [similar to operational panels] + - [V-1] _Option to create new search configs (via redirect to search config creation page)_ + 6. End user query/params input bar [store browser session] + - key/value pairs for template input injection 7. Results table facet [similar to events analytics] 8. Field Selector facet [similar to events analytics] - 9. Document Flyout - ability to select a particular document from the result table and see complete json of the document [similar to events analytics] + 9. Document Flyout - + - ability to select a particular document from the result table and see complete json of the document [similar to events analytics] 5. **Compare** - Ability to select 2 search configs for comparison in runtime - 1. **Compare Search Configs**: + - **Compare Search Configs**: 1. Click compare button 2. Flyout Select 2nd Search Config 3. Split the result facet in two 4. synced Field Selector facet 5. Double Document Flyout - 2. **Compare Meta-Data** + - **Compare Meta-Data** 1. check difference in DSL queries - 3. **Compare live search** result with a saved result *(maybe v2)* + - **Compare live search** result with a saved result [V-2] 1. check difference between live result set and a golden set/previous saved result - Go back single view from compare 6. **Save search meta-data** [saved explicitly by user] @@ -67,28 +83,31 @@ The next section describes the User Interface components that are driving the wo - name - description - tagging - _Data is saved in the plugin index *(v1)_ + - input-params + _Data is saved in the plugin's index [V-1] - 14. **Save search result configuration** [saved explicitly by user] *(maybe v2)* + 14. **Save search result configuration** (saved explicitly by user) [V-2] - Fields: - name - description - tagging - Index or S3/external storage to save the results - - numbers of results to be saved per search + - numbers of results to be saved per search + - input-params 7. *Saved Searches Tab* 1. UI tables 1. Saved Meta-data - 1. Generated DSL query - 2. timestamp - 3. name - 4. description - 5. tagging - 2. Saved Results *(maybe v2)* [top n/200/500] _(new result-index -? or global mapping index -?)_ - 1. timestamp - 2. name - 3. description - 4. tagging + - Generated DSL query + - timestamp + - name + - description + - tagging + - input-params + 2. Saved Results [V-2] [top n/200/500] _(new result-index -? or global mapping index -?)_ + - timestamp + - name + - description + - tagging --- ### Backend The next section describes the Backend components that are driving the work flow of the workbench. @@ -99,25 +118,32 @@ The next section describes the Backend components that are driving the work flow 2. Search interface 3. Saved Search Meta-data --- + - **Object Store** + 1. Supported index mapping for types: + - search_config + - saved_interface: + - search_meta_data: - **API** - 1. Create object POST - 2. Search object GET - 1. by type - 2. by id/ ids - 3. by names - 4. with sorted fields - 5. form index/ max-Items - 3. Update object PUT - 4. Delete object DELETE + 1. Create objects + - Search Config Object + - Search Interface Object + - Search Results Meta-data Object + 2. Validate object + - Search Config validation + - Search Interface validation + 3. Search object + - by type + - by id/ ids + - by names + - with sorted fields + - form index/ max-Items + 4. Update object PUT + 5. Delete object DELETE + - **Security** 1. User access check 2. Tenant based check - - **Mapping** - 1. We can use composite mapping - 2. Supported Object types: - - search_config: - - saved_interface: - - search_meta_data: + --- ### **Search Analytics Requirement** From dae89cbf5d50541a95942543ed9de5c934f65604 Mon Sep 17 00:00:00 2001 From: Lior Perry Date: Tue, 13 Sep 2022 16:08:40 -0700 Subject: [PATCH 3/3] add search relevancy workbench high level Requirements Signed-off-by: YANG-DB --- docs/plan/SearchRelevancyWorkbench.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/plan/SearchRelevancyWorkbench.md b/docs/plan/SearchRelevancyWorkbench.md index 39b6b81..8a2135d 100644 --- a/docs/plan/SearchRelevancyWorkbench.md +++ b/docs/plan/SearchRelevancyWorkbench.md @@ -75,6 +75,7 @@ The next section describes the User Interface components that are driving the wo 5. Double Document Flyout - **Compare Meta-Data** 1. check difference in DSL queries + 2. check difference in (query) input params - **Compare live search** result with a saved result [V-2] 1. check difference between live result set and a golden set/previous saved result - Go back single view from compare