CINXE.COM

<!doctype html> <html lang="en" dir="ltr" class="docs-wrapper docs-doc-page docs-version-current plugin-docs plugin-id-community docs-doc-id-kvrocks-search-index-encoding"> <head> <meta charset="UTF-8"> <meta name="generator" content="Docusaurus v2.4.0"> <title data-rh="true">Index encoding format for Kvrocks Search | Apache Kvrocks™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://kvrocks.apache.org/community/kvrocks-search-index-encoding"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-community-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-community-current"><meta data-rh="true" property="og:title" content="Index encoding format for Kvrocks Search | Apache Kvrocks™"><meta data-rh="true" name="description" content="Different from the encoding method of other data structures in Kvrocks (e.g. String, Hash, ZSet ...),"><meta data-rh="true" property="og:description" content="Different from the encoding method of other data structures in Kvrocks (e.g. String, Hash, ZSet ...),"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://kvrocks.apache.org/community/kvrocks-search-index-encoding"><link data-rh="true" rel="alternate" href="https://kvrocks.apache.org/community/kvrocks-search-index-encoding" hreflang="en"><link data-rh="true" rel="alternate" href="https://kvrocks.apache.org/community/kvrocks-search-index-encoding" hreflang="x-default"><link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache Kvrocks™ RSS Feed"> <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Kvrocks™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.83fea2f5.css"> <link rel="preload" href="/assets/js/runtime~main.4a3abd4f.js" as="script"> <link rel="preload" href="/assets/js/main.da7164cf.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(e){}return e}()||function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus"> <div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top navbarHideable_m1mJ"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/logo.svg" alt="apache-kvrocks" class="themedImage_ToTc themedImage--light_HNdA"><img src="/img/logo.svg" alt="apache-kvrocks" class="themedImage_ToTc themedImage--dark_i4oU"></div><b class="navbar__title text--truncate">Apache Kvrocks</b></a></div><div class="navbar__items navbar__items--right"><a class="navbar__item navbar__link" href="/docs/getting-started">Docs</a><a class="navbar__item navbar__link" href="/download">Download</a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/community/">Community</a><a class="navbar__item navbar__link" href="/blog">Blog</a><a class="navbar__item navbar__link" href="/users">Users</a><a href="https://github.com/apache/kvrocks" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link header-github-link" aria-label="GitHub repository"></a><div class="searchBox_ZlJk"><div class="navbar__search searchBarContainer_NW3z"><input placeholder="Search" aria-label="Search" class="navbar__search-input"><div class="loadingRing_RJI3 searchBarLoadingRing_YnHq"><div></div><div></div><div></div><div></div></div><div class="searchHintContainer_Pkmr"><kbd class="searchHint_iIMx">ctrl</kbd><kbd class="searchHint_iIMx">K</kbd></div></div></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">ASF</a><ul class="dropdown__menu"><li><a href="https://www.apache.org/" target="_blank" rel="noopener noreferrer" class="dropdown__link">Foundation</a></li><li><a href="https://www.apache.org/licenses/" target="_blank" rel="noopener noreferrer" class="dropdown__link">License</a></li><li><a href="https://www.apache.org/events/current-event.html" target="_blank" rel="noopener noreferrer" class="dropdown__link">Events</a></li><li><a href="https://www.apache.org/security/" target="_blank" rel="noopener noreferrer" class="dropdown__link">Security</a></li><li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank" rel="noopener noreferrer" class="dropdown__link">Sponsorship</a></li><li><a href="https://privacy.apache.org/policies/privacy-policy-public.html" target="_blank" rel="noopener noreferrer" class="dropdown__link">Privacy</a></li><li><a href="https://www.apache.org/foundation/thanks.html" target="_blank" rel="noopener noreferrer" class="dropdown__link">Thanks</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd sidebarWithHideableNavbar_wUlq"><a tabindex="-1" class="sidebarLogo_isFc" href="/"><img src="/img/logo.svg" alt="apache-kvrocks" class="themedImage_ToTc themedImage--light_HNdA"><img src="/img/logo.svg" alt="apache-kvrocks" class="themedImage_ToTc themedImage--dark_i4oU"><b>Apache Kvrocks</b></a><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/community/">Community</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/community/contributing">How to Contribute</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/community/category/internals">Internals</a><button aria-label="Toggle the collapsible sidebar category &#x27;Internals&#x27;" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/community/data-structure-on-rocksdb">Data structures design</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/community/kvrocks-search-index-encoding">Index encoding format for Kvrocks Search</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="true" href="/community/category/releases">Releases</a><button aria-label="Toggle the collapsible sidebar category &#x27;Releases&#x27;" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/community/create-a-release">Create a release</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/community/create-a-kvrocks-controller-release">Create a kvrocks controller release</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/community/verify-a-release-candidate">Verify a release candidate</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="true" href="/community/category/committers">Committers</a><button aria-label="Toggle the collapsible sidebar category &#x27;Committers&#x27;" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/community/vote-a-core-developer">Vote a new committer or PMC member</a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/community/security">Security</a></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/community/category/internals"><span itemprop="name">Internals</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Index encoding format for Kvrocks Search</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><h1>Index encoding format for Kvrocks Search</h1><p>Different from <a href="https://kvrocks.apache.org/community/data-structure-on-rocksdb" target="_blank" rel="noopener noreferrer">the encoding method of other data structures</a> in Kvrocks (e.g. String, Hash, ZSet ...), Apache Kvrocks™ Search (a.k.a. Kvrocks Search) uses an independent column family (named <code>search</code>) and a separately designed encoding format to store indexing-related metadata and data.</p><p>WARNING: Kvrocks Search is currently in development and has not been officially released, so its encoding format may undergo breaking changes.</p><h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="common-encoding">Common encoding<a href="#common-encoding" class="hash-link" aria-label="Direct link to Common encoding" title="Direct link to Common encoding">​</a></h2><h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="key-types">Key types<a href="#key-types" class="hash-link" aria-label="Direct link to Key types" title="Direct link to Key types">​</a></h3><table><thead><tr><th>key type</th><th>enum value</th></tr></thead><tbody><tr><td>INDEX_META</td><td>0</td></tr><tr><td>PREFIXES</td><td>1</td></tr><tr><td>FIELD_META</td><td>2</td></tr><tr><td>FIELD</td><td>3</td></tr><tr><td>FIELD_ALIAS</td><td>4</td></tr></tbody></table><p>The common encoding format of key is as follows:</p><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">+-------------+-------------+-------------+----------------+-------------+-------------------+</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">| ns size | namespace | key type | idx name size | index name | other fields... |</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">| (1byte: X) | (Xbyte) | (1byte) | (4bytes: Y) | (Y bytes) | (variable) |</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">+-------------+-------------+-------------+----------------+-------------+-------------------+</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="field-types-and-flags">Field types and flags<a href="#field-types-and-flags" class="hash-link" aria-label="Direct link to Field types and flags" title="Direct link to Field types and flags">​</a></h3><table><thead><tr><th>field type</th><th>enum value</th></tr></thead><tbody><tr><td>tag</td><td>1</td></tr><tr><td>numeric</td><td>2</td></tr><tr><td>vector</td><td>3</td></tr></tbody></table><p>The common encoding format of a <em>field flag</em> is:</p><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">| 8 bit |</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">|----------------------------------------------------|</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">| noindex: 1bit | field type: 4bit | reserved: 3bit |</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="metadata-encoding">Metadata encoding<a href="#metadata-encoding" class="hash-link" aria-label="Direct link to Metadata encoding" title="Direct link to Metadata encoding">​</a></h2><p>In Kvrocks Search, metadata refers to the metadata of an index (also known as a schema), including some properties of the index, which fields are included in this index, what type each field is, and what properties they have.</p><h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="index-metadata">Index metadata<a href="#index-metadata" class="hash-link" aria-label="Direct link to Index metadata" title="Direct link to Index metadata">​</a></h3><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">| namespace | INDEX_META | index name | | index flag | on data type |</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">|-----------|------------|------------| -&gt; |------------|---------------|</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">| 1+X bytes | 1 byte | 4+Y bytes | -&gt; | 1 byte | 1 byte |</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>where <em>index flag</em> is currently 8-bit all reserved (equals to <code>0</code>), and <em>on data type</em> is one of:</p><table><thead><tr><th>on data type</th><th>enum value</th></tr></thead><tbody><tr><td>HASH</td><td>2</td></tr><tr><td>JSON</td><td>10</td></tr></tbody></table><h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="index-prefixes">Index prefixes<a href="#index-prefixes" class="hash-link" aria-label="Direct link to Index prefixes" title="Direct link to Index prefixes">​</a></h3><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">| namespace | PREFIXES | index name | | prefix strings... |</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">|-----------|------------|------------| -&gt; |-------------------|</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">| 1+X bytes | 1 byte | 4+Y bytes | -&gt; | (4+Zi)*N bytes |</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Index prefixes are used to determine which keys belong to the tracking scope of this index. It consists of an array of strings, where each string is a key prefix.</p><h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="tag-field-metadata">Tag field metadata<a href="#tag-field-metadata" class="hash-link" aria-label="Direct link to Tag field metadata" title="Direct link to Tag field metadata">​</a></h3><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">| namespace | FIELD_META | index name | field name | | field flag | separator | case sensitive |</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">|-----------|------------|------------|------------| -&gt; |------------|------------|----------------|</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">| 1+X bytes | 1 byte | 4+Y bytes | 4+Z bytes | -&gt; | 1 byte | 1 byte | 1 byte |</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>where <em>separator</em> currently can only be an ASCII character, and case sensitive can be <code>0</code> (false) or <code>1</code> (true).</p><h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="numeric-field-metadata">Numeric field metadata<a href="#numeric-field-metadata" class="hash-link" aria-label="Direct link to Numeric field metadata" title="Direct link to Numeric field metadata">​</a></h3><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">| namespace | FIELD_META | index name | field name | | field flag |</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">|-----------|------------|------------|------------| -&gt; |------------|</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">| 1+X bytes | 1 byte | 4+Y bytes | 4+Z bytes | -&gt; | 1 byte |</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="hnsw-vector-field-metadata">HNSW Vector Field Metadata<a href="#hnsw-vector-field-metadata" class="hash-link" aria-label="Direct link to HNSW Vector Field Metadata" title="Direct link to HNSW Vector Field Metadata">​</a></h3><p>This metadata format is specifically designed to support efficient vector search using the HNSW (Hierarchical Navigable Small World) algorithm. The encoding captures various parameters and settings relevant for managing the vector index properties and optimizing vector search operations.</p><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">| namespace | FIELD_META | index name | field name | | field flag | vector type | dimension | distance metric | initial cap | m | ef construction | ef runtime | epsilon | number of levels |</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">|-----------|------------|------------|------------| -&gt; |------------|-------------|-----------|-----------------|-------------|-----------|-----------------|------------|---------|------------------|</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">| 1+X bytes | 1 byte | 4+Y bytes | 4+Z bytes | -&gt; | 1 byte | 1 byte | 2 bytes | 1 byte | 4 bytes | 2 bytes | 4 bytes | 4 bytes | 8 bytes | 2 bytes |</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h4 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="required-attributes">Required attributes<a href="#required-attributes" class="hash-link" aria-label="Direct link to Required attributes" title="Direct link to Required attributes">​</a></h4><ul><li><strong>vector type</strong>: Specifies the type of vectors stored (e.g., <code>FLOAT32</code>, <code>FLOAT64</code>); Now Kvrocks only supports <code>FLOAT64</code>. </li><li><strong>dimension</strong>: The dimensionality of the vectors (number of elements in each vector).</li><li><strong>distance metric</strong>: Metric used for distance calculation between vectors (i.e. <code>L2</code>, <code>IP</code>, <code>COSINE</code>).</li></ul><h4 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="optional-attributes">Optional attributes<a href="#optional-attributes" class="hash-link" aria-label="Direct link to Optional attributes" title="Direct link to Optional attributes">​</a></h4><ul><li><strong>initial cap</strong>: Initial capacity of the HNSW graph, indicating the initial number of elements; Default is 500000. </li><li><strong>m</strong>: Maximum number of edges per node in the HNSW graph; Default is 16. </li><li><strong>ef construction</strong>: Size of the dynamic candidate list during the index construction phase; Default is 200. </li><li><strong>ef runtime</strong>: Size of the dynamic candidate list during the search phase; Default is 10. </li><li><strong>epsilon</strong>: Epsilon value for approximate search, controlling the trade-off between search precision and speed; Default is 0.01. </li><li><strong>number of levels</strong>: Number of levels in the HNSW graph, affecting the hierarchical structure of the graph.</li></ul><h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="index-data-encoding">Index data encoding<a href="#index-data-encoding" class="hash-link" aria-label="Direct link to Index data encoding" title="Direct link to Index data encoding">​</a></h2><p>Index data refers to the information stored after indexing the real data, which is used to quickly get corresponding data in subsequent query processes.</p><h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="tag-field">Tag field<a href="#tag-field" class="hash-link" aria-label="Direct link to Tag field" title="Direct link to Tag field">​</a></h3><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">| namespace | FIELD | index name | field name | tag value | user key | | null |</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">|-----------|---------|------------|------------|------------|------------| -&gt; |------------|</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">| 1+X bytes | 1 byte | 4+Y bytes | 4+Z bytes | 4+A bytes | 4+B bytes | -&gt; | 0 byte |</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="numeric-field">Numeric field<a href="#numeric-field" class="hash-link" aria-label="Direct link to Numeric field" title="Direct link to Numeric field">​</a></h3><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">| namespace | FIELD | index name | field name | floating number | user key | | null |</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">|-----------|---------|------------|------------|-----------------|------------| -&gt; |------------|</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">| 1+X bytes | 1 byte | 4+Y bytes | 4+Z bytes | 8 bytes | 4+B bytes | -&gt; | 0 byte |</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="hnsw-vector-field">HNSW Vector field<a href="#hnsw-vector-field" class="hash-link" aria-label="Direct link to HNSW Vector field" title="Direct link to HNSW Vector field">​</a></h3><h4 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="hnsw-graph-entry-types">HNSW graph entry types<a href="#hnsw-graph-entry-types" class="hash-link" aria-label="Direct link to HNSW graph entry types" title="Direct link to HNSW graph entry types">​</a></h4><table><thead><tr><th>hnsw type</th><th>enum value</th></tr></thead><tbody><tr><td>NODE</td><td>1</td></tr><tr><td>EDGE</td><td>2</td></tr></tbody></table><h4 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="hnsw-node-index-encoding">HNSW node index encoding<a href="#hnsw-node-index-encoding" class="hash-link" aria-label="Direct link to HNSW node index encoding" title="Direct link to HNSW node index encoding">​</a></h4><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">| namespace | FIELD | index name | field name | level | hnsw type | user key | | num of neighbours | vector dimension | vector data |</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">|-----------|---------|------------|------------|-----------|----------------|------------| -&gt; |-------------------|------------------|-----------------------|</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">| 1+X bytes | 1 byte | 4+Y bytes | 4+Z bytes | 2 bytes | NODE (1 byte) | 4+B bytes | -&gt; | 2 bytes | 2 bytes | dimension * 8 bytes |</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h4 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="hnsw-edge-index-encoding">HNSW edge index encoding<a href="#hnsw-edge-index-encoding" class="hash-link" aria-label="Direct link to HNSW edge index encoding" title="Direct link to HNSW edge index encoding">​</a></h4><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">| namespace | FIELD | index name | field name | level | hnsw type | user key 1 | user key 2 | | null |</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">|-----------|---------|------------|------------|-----------|----------------|------------|------------| -&gt; |------------|</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">| 1+X bytes | 1 byte | 4+Y bytes | 4+Z bytes | 2 bytes | EDGE (1 byte) | 4+B bytes | 4+B bytes | -&gt; | 0 byte |</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>where <em>user key 1</em> and <em>user key 2</em> represent the endpoints of an edge at a specific level within the HNSW graph.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/kvrocks-website/tree/main/community/kvrocks-search-index-encoding.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><a class="pagination-nav__link pagination-nav__link--prev" href="/community/data-structure-on-rocksdb"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Data structures design</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/community/category/releases"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Releases</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#common-encoding" class="table-of-contents__link toc-highlight">Common encoding</a><ul><li><a href="#key-types" class="table-of-contents__link toc-highlight">Key types</a></li><li><a href="#field-types-and-flags" class="table-of-contents__link toc-highlight">Field types and flags</a></li></ul></li><li><a href="#metadata-encoding" class="table-of-contents__link toc-highlight">Metadata encoding</a><ul><li><a href="#index-metadata" class="table-of-contents__link toc-highlight">Index metadata</a></li><li><a href="#index-prefixes" class="table-of-contents__link toc-highlight">Index prefixes</a></li><li><a href="#tag-field-metadata" class="table-of-contents__link toc-highlight">Tag field metadata</a></li><li><a href="#numeric-field-metadata" class="table-of-contents__link toc-highlight">Numeric field metadata</a></li><li><a href="#hnsw-vector-field-metadata" class="table-of-contents__link toc-highlight">HNSW Vector Field Metadata</a></li></ul></li><li><a href="#index-data-encoding" class="table-of-contents__link toc-highlight">Index data encoding</a><ul><li><a href="#tag-field" class="table-of-contents__link toc-highlight">Tag field</a></li><li><a href="#numeric-field" class="table-of-contents__link toc-highlight">Numeric field</a></li><li><a href="#hnsw-vector-field" class="table-of-contents__link toc-highlight">HNSW Vector field</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/docs/getting-started">Getting started</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/supported-commands">Supported commands</a></li><li class="footer__item"><a class="footer__link-item" href="/community/contributing">How to contribute</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://join.slack.com/t/kvrockscommunity/shared_invite/zt-p5928e3r-OUAK8SUgC8GOceGM6dAz6w" target="_blank" rel="noopener noreferrer" class="footer__link-item">Slack<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://github.com/apache/kvrocks/issues" target="_blank" rel="noopener noreferrer" class="footer__link-item">Issue Tracker<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://lists.apache.org/list.html?dev@kvrocks.apache.org" target="_blank" rel="noopener noreferrer" class="footer__link-item">Mailing list<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Repositories</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/apache/kvrocks" target="_blank" rel="noopener noreferrer" class="footer__link-item">Kvrocks<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://github.com/apache/kvrocks-website" target="_blank" rel="noopener noreferrer" class="footer__link-item">Website<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://github.com/apache/kvrocks-controller" target="_blank" rel="noopener noreferrer" class="footer__link-item">Controller<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><a href="https://www.apache.org/" rel="noopener noreferrer" class="footerLogoLink_BH7S"><img src="/img/asf_logo.svg" alt="Apache logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" height="128px"><img src="/img/asf_logo.svg" alt="Apache logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" height="128px"></a></div><div class="footer__copyright"><div style="text-align: left;"> <div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium,serif;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2025 The Apache Software Foundation. Apache Kvrocks, Kvrocks, and its feather logo are trademarks of The Apache Software Foundation. Redis and its cube logo are registered trademarks of Redis Ltd.</span></div> </div></div></div></div></footer></div> <script src="/assets/js/runtime~main.4a3abd4f.js"></script> <script src="/assets/js/main.da7164cf.js"></script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10