{"id":3062,"date":"2026-11-06T16:10:17","date_gmt":"2026-11-06T16:10:17","guid":{"rendered":"https:\/\/www.kingbaseglobal.com\/blog\/tech-blog\/implement-vector-search-in-databases-a-technical-tutorial\/"},"modified":"2026-11-06T16:10:17","modified_gmt":"2026-11-06T16:10:17","slug":"implement-vector-search-in-databases-a-technical-tutorial","status":"publish","type":"post","link":"https:\/\/www.kingbaseglobal.com\/blog\/tech-blog\/implement-vector-search-in-databases-a-technical-tutorial\/","title":{"rendered":"Implement Vector Search in Databases_ A Technical Tutorial"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/kingbase-bbs.oss-cn-beijing.aliyuncs.com\/qywx\/blogImage\/a0f28d7e-bfaa-4fa1-86d8-ae22e6382a2c.webp\" alt=\"Precision tools arranged on a workshop surface representing technical implementation steps\" \/><\/p>\n<h2>Prerequisites: Kernel Tuning and User Limits for High-Volume Vector Workloads<\/h2>\n<p>Implementing vector search within an enterprise relational database environment requires a stable operating system foundation. The workload characteristics of vector search\u2014high-volume embedding generation, concurrent low-latency retrieval, and intensive index maintenance\u2014place specific demands on system resources. Before configuring the database software, you must configure the underlying Linux kernel parameters and user resource limits.<\/p>\n<p>KingbaseES, as a commercial enterprise database, relies on standard Linux kernel behaviors for memory management and I\/O handling. The following configuration establishes the baseline for handling high-throughput vector operations.<\/p>\n<h3>Step 1: Configure Linux Kernel Parameters<\/h3>\n<p>Vector search operations involve significant memory allocation for index structures and high-frequency disk I\/O for data persistence. Adjust the following parameters in <code>\/etc\/sysctl.conf<\/code> to prevent system-level bottlenecks.<\/p>\n<ol>\n<li>\n<p>Open the sysctl configuration file.<\/p>\n<pre><code class=\"language-bash\">sudo vi \/etc\/sysctl.conf\n<\/code><\/pre>\n<\/li>\n<li>\n<p>Add or modify the following parameters. These values are derived from standard enterprise database tuning guidelines for high-concurrency workloads.<\/p>\n<pre><code class=\"language-text\"># Maximum number of asynchronous I\/O requests\nfs.aio-max-nr = 1048576\n\n# Maximum number of open files in the system\nfs.file-max = 6815744\n\n# Total amount of shared memory pages\nkernel.shmall = 2097152\n\n# Maximum amount of shared memory in bytes\nkernel.shmmax = 17179869184\n\n# Local port range for network connections\nnet.ipv4.ip_local_port_range = 9000 65500\n\n# Default and maximum receive buffer sizes\nnet.core.rmem_default = 262144\nnet.core.rmem_max = 4194304\n\n# Default and maximum send buffer sizes\nnet.core.wmem_default = 262144\nnet.core.wmem_max = 1048576\n<\/code><\/pre>\n<\/li>\n<li>\n<p>Apply the changes immediately.<\/p>\n<pre><code class=\"language-bash\">sudo sysctl -p\n<\/code><\/pre>\n<\/li>\n<\/ol>\n<h3>Step 2: Configure User Resource Limits<\/h3>\n<p>Database processes must be able to open a large number of file descriptors and create sufficient processes. Configure limits for the database administrator user (typically <code>kingbase<\/code> or <code>postgres<\/code>) in <code>\/etc\/security\/limits.conf<\/code>.<\/p>\n<ol>\n<li>\n<p>Open the limits configuration file.<\/p>\n<pre><code class=\"language-bash\">sudo vi \/etc\/security\/limits.conf\n<\/code><\/pre>\n<\/li>\n<li>\n<p>Add the following lines. These limits support high concurrency and large memory allocations required for vector index construction.<\/p>\n<pre><code class=\"language-text\"># Soft and hard limits for nofile (open files)\nkingbase soft nofile 1048576\nkingbase hard nofile 1048576\n\n# Soft and hard limits for nproc (processes)\nkingbase soft nproc 131072\nkingbase hard nproc 131072\n\n# Stack size limits\nkingbase soft stack 10240\nkingbase hard stack 32768\n\n# Core dump limits (unlimited for debugging)\nkingbase soft core unlimited\nkingbase hard core unlimited\n<\/code><\/pre>\n<\/li>\n<li>\n<p>Verify the limits for the current shell session.<\/p>\n<pre><code class=\"language-bash\">ulimit -n\nulimit -u\n<\/code><\/pre>\n<\/li>\n<\/ol>\n<p><strong>Verification Check:<\/strong><br \/>\nRun <code>ulimit -a<\/code> as the database user. Ensure <code>open files<\/code> is at least 1,048,576. If the value is lower, the kernel parameters or limits configuration has not been applied correctly, or the user session needs to be restarted.<\/p>\n<hr \/>\n<h2>Schema Design: Separating Transactional Integrity from Vector Retrieval<\/h2>\n<p>The central challenge in implementing vector search in databases is maintaining the ACID compliance of transactional data while supporting the eventual consistency often associated with vector indexing. The recommended architectural pattern is a layered approach: the relational database serves as the <strong>System of Record<\/strong>, while the vector retrieval layer operates as an extension.<\/p>\n<p><strong>Disclaimer:<\/strong> KingbaseES is commercial software. Vector capabilities are version-dependent. Consult official KingbaseES release notes and documentation to verify specific vector data type support, extension availability, and syntax for your deployed version. Do not assume native vector support without explicit verification.<\/p>\n<h3>Step 1: Define the Hybrid Schema Structure<\/h3>\n<p>Avoid storing high-dimensional vectors directly in the primary transactional tables if possible. Instead, use a normalized schema design that separates vector metadata from the embedding data. This reduces lock contention on transactional rows during vector updates.<\/p>\n<ol>\n<li>\n<p>Create a table for transactional metadata.<\/p>\n<pre><code class=\"language-sql\">CREATE TABLE document_metadata (\n    doc_id BIGINT PRIMARY KEY,\n    title VARCHAR(255),\n    category VARCHAR(50),\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP\n);\n<\/code><\/pre>\n<\/li>\n<li>\n<p>Create a separate table for vector embeddings.<\/p>\n<pre><code class=\"language-sql\">CREATE TABLE document_vectors (\n    doc_id BIGINT PRIMARY KEY,\n    -- Note: Use the specific vector data type supported by your KingbaseES version if available.\n    -- Otherwise, store as array or text and handle parsing at the application layer.\n    embedding_data TEXT,\n    FOREIGN KEY (doc_id) REFERENCES document_metadata(doc_id)\n);\n<\/code><\/pre>\n<\/li>\n<\/ol>\n<p><strong>Note on KingbaseES:<\/strong> KingbaseES provides compatibility with Oracle, MySQL, SQL Server, and PostgreSQL syntax. If your specific version supports a native vector data type, use it. If not, store vectors as arrays or text fields and handle parsing at the application layer.<\/p>\n<h3>Step 2: Implement Metadata Filtering<\/h3>\n<p>Metadata filtering is critical for enterprise search. It restricts vector search results to a specific subset of data, improving accuracy and reducing computational load.<\/p>\n<ol>\n<li>\n<p>Add indexes on frequently filtered metadata columns.<\/p>\n<pre><code class=\"language-sql\">CREATE INDEX idx_doc_category ON document_metadata(category);\nCREATE INDEX idx_doc_created ON document_metadata(created_at);\n<\/code><\/pre>\n<\/li>\n<li>\n<p>Design queries that join metadata filters with vector operations.<\/p>\n<pre><code class=\"language-sql\">SELECT d.title, v.embedding_data\nFROM document_metadata d\nJOIN document_vectors v ON d.doc_id = v.doc_id\nWHERE d.category = 'finance'\n-- Note: The vector distance operator syntax (e.g., &lt;-&gt;) depends on the specific extension or version.\n-- Consult KingbaseES documentation for the correct syntax for your version.\nORDER BY v.embedding_data &lt;-&gt; '[0.1, 0.2, ...]'\nLIMIT 10;\n<\/code><\/pre>\n<\/li>\n<\/ol>\n<p><strong>Verification Check:<\/strong><br \/>\nExecute the query with an <code>EXPLAIN ANALYZE<\/code> command. Verify that the metadata filter (<code>WHERE d.category = 'finance'<\/code>) is applied before the vector distance calculation. If the vector operation runs on the entire table before filtering, the query will be slow and resource-intensive.<\/p>\n<hr \/>\n<h2>Index Strategy: Selecting Vector Index Types in Commercial RDBMS<\/h2>\n<p>Choosing the correct vector index type is essential for balancing latency and accuracy. Common index types include HNSW (Hierarchical Navigable Small World), IVF (Inverted File Index), and Flat search.<\/p>\n<h3>Step 1: Evaluate Index Trade-offs<\/h3>\n<table>\n<thead>\n<tr>\n<th style=\"text-align:left\">Index Type<\/th>\n<th style=\"text-align:left\">Latency<\/th>\n<th style=\"text-align:left\">Accuracy<\/th>\n<th style=\"text-align:left\">Memory Usage<\/th>\n<th style=\"text-align:left\">Best For<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align:left\"><strong>Flat<\/strong><\/td>\n<td style=\"text-align:left\">High<\/td>\n<td style=\"text-align:left\">High<\/td>\n<td style=\"text-align:left\">High<\/td>\n<td style=\"text-align:left\">Small datasets, exact search<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align:left\"><strong>IVF<\/strong><\/td>\n<td style=\"text-align:left\">Medium<\/td>\n<td style=\"text-align:left\">Medium<\/td>\n<td style=\"text-align:left\">Medium<\/td>\n<td style=\"text-align:left\">Large datasets, cost-effective<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align:left\"><strong>HNSW<\/strong><\/td>\n<td style=\"text-align:left\">Low<\/td>\n<td style=\"text-align:left\">High<\/td>\n<td style=\"text-align:left\">High<\/td>\n<td style=\"text-align:left\">Real-time, high-concurrency search<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Step 2: Verify Vendor Support<\/h3>\n<p>KingbaseES is a commercial database software. Specific support for vector index types (e.g., HNSW, IVF) depends on the version and installed extensions.<\/p>\n<ol>\n<li>\n<p>Check the current KingbaseES version.<\/p>\n<pre><code class=\"language-sql\">SELECT version();\n<\/code><\/pre>\n<\/li>\n<li>\n<p>Query available extensions.<\/p>\n<pre><code class=\"language-sql\">SELECT * FROM pg_extension;\n<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>Critical Verification:<\/strong><br \/>\nIf the evidence package does not confirm native HNSW\/IVF support in your specific version, you must:<\/p>\n<ul>\n<li>Use a plugin or extension if available.<\/li>\n<li>Implement vector search at the application layer.<\/li>\n<li>Consult KingbaseES documentation for the specific version (e.g., V8R6, V9) to verify vector capabilities.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p><strong>Warning:<\/strong> Do not assume native vector index support without explicit evidence. Implementing vector search in a commercial RDBMS without native support requires careful architectural planning to avoid performance degradation.<\/p>\n<hr \/>\n<h2>Implementation: Integrating Hybrid Search (BM25 + Semantic) and Metadata Filtering<\/h2>\n<p>Hybrid search combines keyword search (e.g., BM25) with semantic vector search. This approach improves recall by capturing both exact matches and conceptual similarities.<\/p>\n<h3>Step 1: Implement Keyword Search<\/h3>\n<ol>\n<li>\n<p>Create a full-text index on the title column.<\/p>\n<pre><code class=\"language-sql\">CREATE INDEX idx_doc_title_fts ON document_metadata USING gin(to_tsvector('english', title));\n<\/code><\/pre>\n<\/li>\n<li>\n<p>Query using keyword search.<\/p>\n<pre><code class=\"language-sql\">SELECT doc_id, title\nFROM document_metadata\nWHERE to_tsvector('english', title) @@ to_tsquery('english', 'finance AND report');\n<\/code><\/pre>\n<\/li>\n<\/ol>\n<h3>Step 2: Combine with Vector Search<\/h3>\n<ol>\n<li>\n<p>Use a scoring mechanism to combine keyword and vector scores.<\/p>\n<pre><code class=\"language-sql\">SELECT d.doc_id, d.title,\n       ts_rank(to_tsvector('english', d.title), to_tsquery('english', 'finance')) AS keyword_score,\n       v.embedding_data &lt;-&gt; '[0.1, 0.2, ...]' AS vector_distance\nFROM document_metadata d\nJOIN document_vectors v ON d.doc_id = v.doc_id\nWHERE to_tsvector('english', d.title) @@ to_tsquery('english', 'finance')\nORDER BY keyword_score DESC, vector_distance ASC;\n<\/code><\/pre>\n<\/li>\n<\/ol>\n<h3>Step 3: Apply Metadata Filtering<\/h3>\n<ol>\n<li>\n<p>Add metadata constraints to the hybrid query.<\/p>\n<pre><code class=\"language-sql\">SELECT d.doc_id, d.title\nFROM document_metadata d\nJOIN document_vectors v ON d.doc_id = v.doc_id\nWHERE d.category = 'finance'\n  AND to_tsvector('english', d.title) @@ to_tsquery('english', 'report')\nORDER BY v.embedding_data &lt;-&gt; '[0.1, 0.2, ...]'\nLIMIT 10;\n<\/code><\/pre>\n<\/li>\n<\/ol>\n<p><strong>Verification Check:<\/strong><br \/>\nTest the hybrid query with varying metadata filters. Ensure that the performance remains consistent when filtering by different categories. If performance degrades significantly, consider partitioning the data by category.<\/p>\n<hr \/>\n<h2>Verification: Validating Latency, Accuracy, and Index Freshness<\/h2>\n<p>Before deploying vector search to production, you must validate that the system meets latency and accuracy requirements.<\/p>\n<h3>Step 1: Latency Validation<\/h3>\n<ol>\n<li>Use KingbaseES performance monitoring tools to identify slow queries. KingbaseES V9 includes the Kingbase Session History (KSH) component for detailed session history analysis.<\/li>\n<li>Consult KingbaseES documentation for the specific syntax to query KSH reports or use the performance inspection platform.<\/li>\n<li>Set a latency threshold (e.g., &lt; 100ms for vector queries). If queries exceed this threshold, optimize the index or reduce the vector dimensionality.<\/li>\n<\/ol>\n<h3>Step 2: Accuracy Validation<\/h3>\n<ol>\n<li>Create a test dataset with known ground-truth results.<\/li>\n<li>Run vector queries against the test dataset.<\/li>\n<li>Compare the results with the ground truth.<\/li>\n<li>Calculate the Recall@K and Precision@K metrics.<\/li>\n<\/ol>\n<h3>Step 3: Index Freshness Validation<\/h3>\n<ol>\n<li>Monitor the index update frequency.<\/li>\n<li>Ensure that vector embeddings are updated in real-time or near-real-time as transactional data changes.<\/li>\n<li>Use KingbaseES&#8217;s transaction management to ensure vector updates are committed atomically with transactional data.<\/li>\n<\/ol>\n<hr \/>\n<h2>Troubleshooting: Handling Index Maintenance and Failure Modes<\/h2>\n<p>Vector search implementations in RDBMS face specific failure modes, such as index staleness and performance degradation during high-volume updates.<\/p>\n<h3>Step 1: Index Staleness<\/h3>\n<p><strong>Problem:<\/strong> Vector embeddings become outdated as transactional data changes.<\/p>\n<p><strong>Solution:<\/strong><\/p>\n<ol>\n<li>\n<p>Implement a trigger or application-level logic to update vector embeddings when transactional data changes.<\/p>\n<\/li>\n<li>\n<p>Use KingbaseES&#8217;s performance inspection platform to monitor slow queries related to vector updates.<\/p>\n<pre><code class=\"language-sql\">-- Example: Monitor slow vector updates\n-- Use KingbaseES performance monitoring tools to identify slow queries.\n-- Consult KingbaseES documentation for the specific query syntax for your version.\n<\/code><\/pre>\n<\/li>\n<\/ol>\n<h3>Step 2: Performance Degradation<\/h3>\n<p><strong>Problem:<\/strong> High-concurrency vector queries cause system resource exhaustion.<\/p>\n<p><strong>Solution:<\/strong><\/p>\n<ol>\n<li>Use PawSQL for intelligent SQL review, rewriting, index recommendation, and execution plan visualization. PawSQL provides these features for KingbaseES applications.<\/li>\n<li>Optimize vector index parameters (e.g., <code>ef_construction<\/code>, <code>m<\/code> for HNSW) based on workload characteristics.<\/li>\n<li>Implement connection pooling to manage concurrent vector queries.<\/li>\n<\/ol>\n<h3>Step 3: Memory Exhaustion<\/h3>\n<p><strong>Problem:<\/strong> Vector indexing requires significant memory.<\/p>\n<p><strong>Solution:<\/strong><\/p>\n<ol>\n<li>Monitor memory usage using KingbaseES&#8217;s performance inspection tools.<\/li>\n<li>Adjust <code>shared_buffers<\/code> and <code>work_mem<\/code> parameters in <code>kingbase.conf<\/code> to allocate sufficient memory for vector operations.<\/li>\n<li>Consider partitioning vector data by category or date to reduce memory pressure.<\/li>\n<\/ol>\n<hr \/>\n<h2>Rollback Strategy: Preserving ACID Compliance During Schema Changes<\/h2>\n<p>Rolling back vector schema changes without disrupting transactional integrity is critical.<\/p>\n<h3>Step 1: Plan the Rollback<\/h3>\n<ol>\n<li>Identify all schema changes related to vector search.<\/li>\n<li>Prepare rollback scripts to revert these changes.<\/li>\n<\/ol>\n<h3>Step 2: Execute the Rollback<\/h3>\n<ol>\n<li>\n<p>Begin a transaction.<\/p>\n<pre><code class=\"language-sql\">BEGIN;\n<\/code><\/pre>\n<\/li>\n<li>\n<p>Revert schema changes.<\/p>\n<pre><code class=\"language-sql\">DROP INDEX IF EXISTS idx_doc_title_fts;\nDROP TABLE IF EXISTS document_vectors;\nALTER TABLE document_metadata DROP COLUMN IF EXISTS vector_id;\n<\/code><\/pre>\n<\/li>\n<li>\n<p>Commit the transaction.<\/p>\n<pre><code class=\"language-sql\">COMMIT;\n<\/code><\/pre>\n<\/li>\n<\/ol>\n<h3>Step 3: Verify Transactional Integrity<\/h3>\n<ol>\n<li>Run transactional queries to ensure data consistency.<\/li>\n<li>Verify that no vector-related tables or indexes remain.<\/li>\n<\/ol>\n<p><strong>Verification Check:<\/strong><br \/>\nCheck the database system catalogs to ensure all vector-related objects have been removed.<\/p>\n<pre><code class=\"language-sql\">SELECT * FROM pg_class WHERE relname LIKE '%vector%';\n<\/code><\/pre>\n<p>If any objects remain, remove them manually.<\/p>\n<hr \/>\n<h2>FAQ<\/h2>\n<h3>What are the performance trade-offs of in-database vector search versus external vector stores?<\/h3>\n<p>In-database vector search reduces data movement and simplifies architecture but may face latency challenges compared to specialized vector stores. External vector stores offer optimized algorithms but introduce data synchronization complexity.<\/p>\n<h3>How to verify vendor support for vector features in commercial database software?<\/h3>\n<p>Check the vendor&#8217;s official documentation for the specific version (e.g., KingbaseES V8R6, V9). Query <code>pg_extension<\/code> to list available extensions. Consult vendor support if documentation is unclear.<\/p>\n<h3>What are the failure modes of hybrid search implementations in RDBMS?<\/h3>\n<p>Common failure modes include index staleness, performance degradation during high-concurrency updates, and memory exhaustion. Monitor query performance and index freshness to mitigate these risks.<\/p>\n<h3>How to validate low-latency inference requirements with in-database vector retrieval?<\/h3>\n<p>Use KingbaseES performance monitoring tools (such as KSH or PawSQL) to monitor query execution times. Set latency thresholds and optimize indexes and queries to meet these requirements.<\/p>\n<h3>How to rollback vector schema changes without disrupting transactional integrity?<\/h3>\n<p>Use SQL transactions to wrap schema changes. Revert changes in the same transaction and commit. Verify that no vector-related objects remain and that transactional data is consistent.<\/p>\n<hr \/>\n<p><strong>\ud83d\udca1 More Resources<\/strong><\/p>\n<p>If you would like to dive deeper into KingbaseES and its application practices across various industries, we have compiled the following official resources to help you get started quickly and develop and operate with efficiency:<\/p>\n<ul>\n<li><a href=\"https:\/\/bbs.kingbase.com.cn\/\">Kingbase Community<\/a>: A one-stop interactive platform for technical exchanges, Q&amp;A, and experience sharing\u2014join forces with fellow DBAs and developers.<\/li>\n<li><a href=\"https:\/\/www.kingbaseglobal.com\/Solution-Oracle.html\">Kingbase Solutions<\/a>: One-stop full-stack database migration and cloud-native solutions, supporting smooth migration of multi-source heterogeneous data, ensuring high availability, real-time integration, and sustained high performance.<\/li>\n<li><a href=\"https:\/\/www.kingbaseglobal.com\/Customers.html\">Kingbase Case Studies<\/a>: Real-world user scenarios and implementation outcomes, showcasing KingbaseES&#8217;s outstanding capabilities in high availability, high performance, and IT adaptation.<\/li>\n<li><a href=\"https:\/\/docs.kingbase.com.cn\/en\">Kingbase Documentation<\/a>: Authoritative and comprehensive product manuals and technical guides, covering the entire lifecycle from installation and deployment to development, programming, and operations management.<\/li>\n<li><a href=\"https:\/\/www.kingbaseglobal.com\/Download.html\">Free Download<\/a>: Get the latest installation packages, drivers, tools, and patches, supporting multiple platforms and domestic chip architectures.<\/li>\n<li><a href=\"https:\/\/www.kingbaseglobal.com\/blog\/\">Digital Construction Encyclopedia<\/a>: Covers digital strategy planning, data integration, metrics management, database visualization applications, and more to empower enterprise digital transformation.<\/li>\n<\/ul>\n<p><strong>Open Source Resources:<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/hgsandy\/Kingbase-docs\">GitHub &#8211; Kingbase-docs<\/a>: Kingbase documentation open-source repository\u2014Stars and contributions are welcome.<\/li>\n<li><a href=\"https:\/\/gitee.com\/hgsandy\/kingbase-docs\">Gitee &#8211; Kingbase-docs<\/a>: Domestic mirror repository for Kingbase documentation for faster access.<\/li>\n<\/ul>\n<p>Welcome to explore the resources above and begin your Kingbase journey!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Prerequisites: Kernel Tuning and User Limits for High-Volume Vector Workloads Implementing vector search within an enterprise relational database environment requires a stable operating system foundation. The workload characteristics of vector&#8230;<\/p>\n","protected":false},"author":1720,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"meta_description":"","_kingbase_seo_description":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-3062","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/www.kingbaseglobal.com\/blog\/wp-json\/wp\/v2\/posts\/3062","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kingbaseglobal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kingbaseglobal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kingbaseglobal.com\/blog\/wp-json\/wp\/v2\/users\/1720"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kingbaseglobal.com\/blog\/wp-json\/wp\/v2\/comments?post=3062"}],"version-history":[{"count":0,"href":"https:\/\/www.kingbaseglobal.com\/blog\/wp-json\/wp\/v2\/posts\/3062\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.kingbaseglobal.com\/blog\/wp-json\/wp\/v2\/media?parent=3062"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kingbaseglobal.com\/blog\/wp-json\/wp\/v2\/categories?post=3062"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kingbaseglobal.com\/blog\/wp-json\/wp\/v2\/tags?post=3062"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}