Type:
Epic
Priority:
Critical
Resolution:
Unresolved
Fix Version/s:
None
Feature Overview:
Hybrid search combines the strengths of vector search and keyword-based search to deliver more relevant and comprehensive results. This feature proposes integrating a text search component into MariaDB server, using BM25 as an example algorithm. Reciprocal Rank Fusion (RRF) can be employed to merge results from vector search and text search, providing users with a unified ranking of results based on semantic and linguistic relevance.
Key Components
Vector Search: Leverages the database's existing capabilities to retrieve results based on semantic similarity in the vector space.
Proposed Text Search Component:
Uses BM25 as an example for scoring keyword-based relevance.
BM25 ranks documents by considering term frequency, inverse document frequency, and document length normalization. Ref: BM25
Reciprocal Rank Fusion (RRF): Combines rankings from vector search and text search, ensuring results that reflect both semantic understanding and precise keyword relevance.RRF from Microsoft
How It Works:
Query Processing:
A user query is processed for both semantic embedding (vector search) and keyword extraction (text search).
The vector embedding is compared against the indexed vectors in the database.
The keywords are scored using BM25 or a similar algorithm to rank results based on textual relevance.
Rank Fusion:
RRF assigns scores to results from both search methods.
Text chunks ranking highly in either or both methods are given priority in the final ranking.
The fused ranking balances the strengths of both approaches, ensuring relevance across different query types.
Benefits:
Balanced Relevance: Delivers results that combine deep semantic understanding with precise keyword matching.
User Flexibility: Supports diverse query types, including vague or broad descriptions and exact matches.
Scalability and Adaptability: Suitable for handling large datasets and evolving user needs across various domains.
{"report":{"fcp":1457.2000000476837,"ttfb":158,"pageVisibility":"visible","entityId":132015,"key":"jira.project.issue.view-issue","isInitial":true,"threshold":1000,"elementTimings":{},"userDeviceMemory":8,"userDeviceProcessors":64,"apdex":0.5,"journeyId":"9ed028fd-d118-4640-aa17-b298fab0d035","navigationType":0,"readyForUser":1542,"redirectCount":0,"resourceLoadedEnd":1927.2999999523163,"resourceLoadedStart":185.79999995231628,"resourceTiming":[{"duration":523.4000000953674,"initiatorType":"link","name":"https://jira.mariadb.org/s/2c21342762a6a02add1c328bed317ffd-CDN/lu2cib/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/css/_super/batch.css","startTime":185.79999995231628,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":185.79999995231628,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":709.2000000476837,"responseStart":0,"secureConnectionStart":0},{"duration":524.4000000953674,"initiatorType":"link","name":"https://jira.mariadb.org/s/7ebd35e77e471bc30ff0eba799ebc151-CDN/lu2cib/820016/12ta74/494e4c556ecbb29f90a3d3b4f09cb99c/_/download/contextbatch/css/jira.browse.project,project.issue.navigator,jira.view.issue,jira.general,jira.global,atl.general,-_super/batch.css?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&slack-enabled=true&whisper-enabled=true","startTime":186.09999990463257,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":186.09999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":710.5,"responseStart":0,"secureConnectionStart":0},{"duration":553.2000000476837,"initiatorType":"script","name":"https://jira.mariadb.org/s/0917945aaa57108d00c5076fea35e069-CDN/lu2cib/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/js/_super/batch.js?locale=en","startTime":186.20000004768372,"connectEnd":186.20000004768372,"connectStart":186.20000004768372,"domainLookupEnd":186.20000004768372,"domainLookupStart":186.20000004768372,"fetchStart":186.20000004768372,"redirectEnd":0,"redirectStart":0,"requestStart":186.20000004768372,"responseEnd":739.4000000953674,"responseStart":739.4000000953674,"secureConnectionStart":186.20000004768372},{"duration":600.1999998092651,"initiatorType":"script","name":"https://jira.mariadb.org/s/2d8175ec2fa4c816e8023260bd8c1786-CDN/lu2cib/820016/12ta74/494e4c556ecbb29f90a3d3b4f09cb99c/_/download/contextbatch/js/jira.browse.project,project.issue.navigator,jira.view.issue,jira.general,jira.global,atl.general,-_super/batch.js?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&locale=en&slack-enabled=true&whisper-enabled=true","startTime":186.40000009536743,"connectEnd":186.40000009536743,"connectStart":186.40000009536743,"domainLookupEnd":186.40000009536743,"domainLookupStart":186.40000009536743,"fetchStart":186.40000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":186.40000009536743,"responseEnd":786.5999999046326,"responseStart":786.5999999046326,"secureConnectionStart":186.40000009536743},{"duration":606.9000000953674,"initiatorType":"script","name":"https://jira.mariadb.org/s/a9324d6758d385eb45c462685ad88f1d-CDN/lu2cib/820016/12ta74/c92c0caa9a024ae85b0ebdbed7fb4bd7/_/download/contextbatch/js/atl.global,-_super/batch.js?locale=en","startTime":186.59999990463257,"connectEnd":186.59999990463257,"connectStart":186.59999990463257,"domainLookupEnd":186.59999990463257,"domainLookupStart":186.59999990463257,"fetchStart":186.59999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":186.59999990463257,"responseEnd":793.5,"responseStart":793.5,"secureConnectionStart":186.59999990463257},{"duration":608.1000001430511,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/1.0/_/download/batch/jira.webresources:calendar-en/jira.webresources:calendar-en.js","startTime":186.79999995231628,"connectEnd":186.79999995231628,"connectStart":186.79999995231628,"domainLookupEnd":186.79999995231628,"domainLookupStart":186.79999995231628,"fetchStart":186.79999995231628,"redirectEnd":0,"redirectStart":0,"requestStart":186.79999995231628,"responseEnd":794.9000000953674,"responseStart":794.9000000953674,"secureConnectionStart":186.79999995231628},{"duration":609.2999999523163,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/1.0/_/download/batch/jira.webresources:calendar-localisation-moment/jira.webresources:calendar-localisation-moment.js","startTime":187,"connectEnd":187,"connectStart":187,"domainLookupEnd":187,"domainLookupStart":187,"fetchStart":187,"redirectEnd":0,"redirectStart":0,"requestStart":187,"responseEnd":796.2999999523163,"responseStart":796.2999999523163,"secureConnectionStart":187},{"duration":611.5,"initiatorType":"link","name":"https://jira.mariadb.org/s/b04b06a02d1959df322d9cded3aeecc1-CDN/lu2cib/820016/12ta74/a2ff6aa845ffc9a1d22fe23d9ee791fc/_/download/contextbatch/css/jira.global.look-and-feel,-_super/batch.css","startTime":187.09999990463257,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":187.09999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":798.5999999046326,"responseStart":0,"secureConnectionStart":0},{"duration":610.7999999523163,"initiatorType":"script","name":"https://jira.mariadb.org/rest/api/1.0/shortcuts/820016/47140b6e0a9bc2e4913da06536125810/shortcuts.js?context=issuenavigation&context=issueaction","startTime":187.29999995231628,"connectEnd":187.29999995231628,"connectStart":187.29999995231628,"domainLookupEnd":187.29999995231628,"domainLookupStart":187.29999995231628,"fetchStart":187.29999995231628,"redirectEnd":0,"redirectStart":0,"requestStart":187.29999995231628,"responseEnd":798.0999999046326,"responseStart":798.0999999046326,"secureConnectionStart":187.29999995231628},{"duration":809.0999999046326,"initiatorType":"link","name":"https://jira.mariadb.org/s/3ac36323ba5e4eb0af2aa7ac7211b4bb-CDN/lu2cib/820016/12ta74/d176f0986478cc64f24226b3d20c140d/_/download/contextbatch/css/com.atlassian.jira.projects.sidebar.init,-_super,-project.issue.navigator,-jira.view.issue/batch.css?jira.create.linked.issue=true","startTime":187.40000009536743,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":187.40000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":996.5,"responseStart":0,"secureConnectionStart":0},{"duration":612.9000000953674,"initiatorType":"script","name":"https://jira.mariadb.org/s/5d5e8fe91fbc506585e83ea3b62ccc4b-CDN/lu2cib/820016/12ta74/d176f0986478cc64f24226b3d20c140d/_/download/contextbatch/js/com.atlassian.jira.projects.sidebar.init,-_super,-project.issue.navigator,-jira.view.issue/batch.js?jira.create.linked.issue=true&locale=en","startTime":187.59999990463257,"connectEnd":187.59999990463257,"connectStart":187.59999990463257,"domainLookupEnd":187.59999990463257,"domainLookupStart":187.59999990463257,"fetchStart":187.59999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":187.59999990463257,"responseEnd":800.5,"responseStart":800.5,"secureConnectionStart":187.59999990463257},{"duration":1195.1000001430511,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/1.0/_/download/batch/jira.webresources:bigpipe-js/jira.webresources:bigpipe-js.js","startTime":188.59999990463257,"connectEnd":188.59999990463257,"connectStart":188.59999990463257,"domainLookupEnd":188.59999990463257,"domainLookupStart":188.59999990463257,"fetchStart":188.59999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":188.59999990463257,"responseEnd":1383.7000000476837,"responseStart":1383.7000000476837,"secureConnectionStart":188.59999990463257},{"duration":1738.7000000476837,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/1.0/_/download/batch/jira.webresources:bigpipe-init/jira.webresources:bigpipe-init.js","startTime":188.59999990463257,"connectEnd":188.59999990463257,"connectStart":188.59999990463257,"domainLookupEnd":188.59999990463257,"domainLookupStart":188.59999990463257,"fetchStart":188.59999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":188.59999990463257,"responseEnd":1927.2999999523163,"responseStart":1927.2999999523163,"secureConnectionStart":188.59999990463257},{"duration":528.7000000476837,"initiatorType":"xmlhttprequest","name":"https://jira.mariadb.org/rest/webResources/1.0/resources","startTime":1051.0999999046326,"connectEnd":1051.0999999046326,"connectStart":1051.0999999046326,"domainLookupEnd":1051.0999999046326,"domainLookupStart":1051.0999999046326,"fetchStart":1051.0999999046326,"redirectEnd":0,"redirectStart":0,"requestStart":1051.0999999046326,"responseEnd":1579.7999999523163,"responseStart":1579.7999999523163,"secureConnectionStart":1051.0999999046326}],"fetchStart":0,"domainLookupStart":0,"domainLookupEnd":0,"connectStart":0,"connectEnd":0,"requestStart":4,"responseStart":158,"responseEnd":168,"domLoading":184,"domInteractive":1977,"domContentLoadedEventStart":1978,"domContentLoadedEventEnd":2059,"domComplete":3097,"loadEventStart":3097,"loadEventEnd":3099,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","marks":[{"name":"bigPipe.sidebar-id.start","time":1929.2999999523163},{"name":"bigPipe.sidebar-id.end","time":1931.0999999046326},{"name":"bigPipe.activity-panel-pipe-id.start","time":1931.2999999523163},{"name":"bigPipe.activity-panel-pipe-id.end","time":1939.5999999046326},{"name":"activityTabFullyLoaded","time":2070.5}],"measures":[],"correlationId":"ca92d7964414d3","effectiveType":"4g","downlink":10,"rtt":0,"serverDuration":99,"dbReadsTimeInMs":11,"dbConnsTimeInMs":21,"applicationHash":"9d11dbea5f4be3d4cc21f03a88dd11d8c8687422","experiments":[]}}