{"id":27584,"date":"2025-05-28T00:14:35","date_gmt":"2025-05-28T07:14:35","guid":{"rendered":"https:\/\/www.pingcap.com\/?p=27584"},"modified":"2025-08-27T00:39:41","modified_gmt":"2025-08-27T07:39:41","slug":"introducing-full-text-search-for-tidb","status":"publish","type":"post","link":"https:\/\/www.pingcap.com\/ko\/blog\/introducing-full-text-search-for-tidb\/","title":{"rendered":"Introducing Full-Text Search for TiDB: Enhancing RAG Applications with Hybrid Search"},"content":{"rendered":"<p>At PingCAP, we strive to <a href=\"https:\/\/www.pingcap.com\/ko\/ai\/\">make TiDB your all-in-one AI database<\/a>, capable of handling any workload seamlessly to fulfill the demand of the fast-evolving AI ecosystem. With <a href=\"https:\/\/docs.pingcap.com\/tidbcloud\/vector-search-overview\">vector search already available in TiDB<\/a>, we are now <strong>excited to announce the native support for <a href=\"https:\/\/docs.pingcap.com\/tidbcloud\/vector-search-full-text-search-sql\/\">full-text search (beta)<\/a> in TiDB Cloud Serverless(now called Starter) <\/strong>clusters.<\/p>\n\n\n\n<p>Full-text search allows you to search for specific keywords in text data. In AI scenarios, by retrieving content via both vector search and full-text search (a.k.a. hybrid search), you can search for more relevant contents. This will yield better responses for your Retrieval-Augmented Generation (RAG) applications.<\/p>\n\n\n\n<p>This blog will walk you through the details of how full-text search delivers improved search quality in RAG applications, and how you can use TiDB full-text search now.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"279\" src=\"https:\/\/static.pingcap.com\/files\/2025\/05\/27234522\/Hybridizing-Vector-Search-and-Full-Text-Search-in-RAG-1024x279.png\" alt=\"Hybridizing Vector Search and Full-Text Search in RAG\" class=\"wp-image-27590\" style=\"width:750px;height:auto\" srcset=\"https:\/\/static.pingcap.com\/files\/2025\/05\/27234522\/Hybridizing-Vector-Search-and-Full-Text-Search-in-RAG-1024x279.png 1024w, https:\/\/static.pingcap.com\/files\/2025\/05\/27234522\/Hybridizing-Vector-Search-and-Full-Text-Search-in-RAG-300x82.png 300w, https:\/\/static.pingcap.com\/files\/2025\/05\/27234522\/Hybridizing-Vector-Search-and-Full-Text-Search-in-RAG-768x210.png 768w, https:\/\/static.pingcap.com\/files\/2025\/05\/27234522\/Hybridizing-Vector-Search-and-Full-Text-Search-in-RAG.png 1488w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em>Hybridizing Vector Search and Full-Text Search in RAG<\/em><\/figcaption><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Core_Benefits\"><\/span>Core Benefits<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Multi-lingual support<\/strong>: TiDB supports searching text in a variety of languages with high quality (using BM25 scoring) while not needing to specify what the language it is. The supported languages include English, Japanese, Chinese, Korean, and more. Additionally, you can store contents of different languages altogether in the same table. This is especially valuable for GenAI SaaS services as your customers may want to store content in arbitrary languages.<\/li>\n\n\n\n<li><strong>One database for all<\/strong>: TiDB handles both structured and unstructured data all in one database. It also exposes extensive query interfaces via <a href=\"https:\/\/docs.pingcap.com\/tidbcloud\/vector-search-full-text-search-sql\/\">SQL<\/a>, <a href=\"https:\/\/docs.pingcap.com\/tidbcloud\/vector-search-full-text-search-python\/\">Python<\/a>, or your favorite programming languages. Take GraphRAG apps as an example: TiDB can host everything including source documents, graphs, text chunks, embedding vectors. What&#8217;s more, TiDB SQL enables cross-query capabilities, like &#8220;find the knowledge graph path that is semantically closest to the given query and return its 2nd degree neighbor nodes and the corresponding text chunks&#8221;.<\/li>\n\n\n\n<li><strong>Reduce operational overhead and costs<\/strong>: GenAI apps often have usage peaks and troughs according to online traffic and user demand. We know this \u2014 TiDB Cloud Serverless is fully managed and follows the <a href=\"https:\/\/docs.pingcap.com\/tidbcloud\/serverless-faqs\/#billing-and-metering-faqs\">pay-as-you-go pricing model<\/a>, allowing you to only pay for what you use, thus <a href=\"https:\/\/www.pingcap.com\/ko\/case-study\/dify-consolidates-massive-database-containers-into-one-unified-system-with-tidb\/\">reducing the cost when your users are sleeping<\/a>.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"How_Does_Full_Text_Search_Vector_Search_Improve_AI_Responses\"><\/span>How Does Full Text Search + Vector Search Improve AI Responses?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>To understand why a hybrid approach is beneficial, let&#8217;s first take a look at the differences between vector search and full-text search.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Vector Search<\/h3>\n\n\n\n<p>Vector search uses vector embeddings to represent the meaning of words and phrases. It captures semantic relationships and can find similar content based on context.<\/p>\n\n\n\n<p>For example, &#8220;Python&#8221; represents a programming language, but it can also refer to a snake. When you run a vector search for a query like &#8216;Python is essential for developers,&#8217; TiDB interprets &#8216;Python&#8217; as the programming language\u2014not the snake\u2014and returns more relevant results, even if the word &#8216;Python&#8217; doesn&#8217;t appear explicitly in the content.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"569\" src=\"https:\/\/static.pingcap.com\/files\/2025\/05\/27234956\/Vector-Search-Example-1024x569.png\" alt=\"Vector Search Example\" class=\"wp-image-27592\" style=\"width:750px\" srcset=\"https:\/\/static.pingcap.com\/files\/2025\/05\/27234956\/Vector-Search-Example-1024x569.png 1024w, https:\/\/static.pingcap.com\/files\/2025\/05\/27234956\/Vector-Search-Example-300x167.png 300w, https:\/\/static.pingcap.com\/files\/2025\/05\/27234956\/Vector-Search-Example-768x427.png 768w, https:\/\/static.pingcap.com\/files\/2025\/05\/27234956\/Vector-Search-Example-1536x854.png 1536w, https:\/\/static.pingcap.com\/files\/2025\/05\/27234956\/Vector-Search-Example.png 1562w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em>Vector Search Example<\/em><\/figcaption><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Full-Text_Search\"><\/span>Full-Text Search<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Full-text search relies on keyword matching. It looks for exact matches of each word in the text. It is especially useful for finding specific IDs (e.g., \u201cdeepseek-r1\u201d), product names (e.g., \u201ciPhone 15\u201d), numbers, email addresses, or other precise information, where vector search will fail to return relevant results.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"677\" src=\"https:\/\/static.pingcap.com\/files\/2025\/05\/27235036\/Full-Text-Search-Example-1024x677.png\" alt=\"Full-Text Search Example\" class=\"wp-image-27593\" style=\"width:750px\" srcset=\"https:\/\/static.pingcap.com\/files\/2025\/05\/27235036\/Full-Text-Search-Example-1024x677.png 1024w, https:\/\/static.pingcap.com\/files\/2025\/05\/27235036\/Full-Text-Search-Example-300x198.png 300w, https:\/\/static.pingcap.com\/files\/2025\/05\/27235036\/Full-Text-Search-Example-768x508.png 768w, https:\/\/static.pingcap.com\/files\/2025\/05\/27235036\/Full-Text-Search-Example.png 1398w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em>Full-Text Search Example<\/em><\/figcaption><\/figure>\n<\/div>\n\n\n<p>RAG works by retrieving relevant documents from a large corpus according to the user query. It then generates responses based on those documents using Large Language Models (LLMs). The retrieval process is crucial for the quality of the generated responses.<\/p>\n\n\n\n<p>User queries vary in their nature. Some queries are more semantic, while others are more keyword-based. By combining vector search and full-text search (i.e., hybrid search), RAG applications can leverage the strengths of both methods to improve the retrieval process. This ensures the most relevant documents are found and used for response generation. As a result, it yields more accurate and contextually relevant responses.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"440\" src=\"https:\/\/static.pingcap.com\/files\/2025\/05\/27235115\/Hybrid-Search-RAG-Workflow-1024x440.png\" alt=\"Hybrid Search RAG Workflow with Full-Text Search\" class=\"wp-image-27594\" style=\"width:750px\" srcset=\"https:\/\/static.pingcap.com\/files\/2025\/05\/27235115\/Hybrid-Search-RAG-Workflow-1024x440.png 1024w, https:\/\/static.pingcap.com\/files\/2025\/05\/27235115\/Hybrid-Search-RAG-Workflow-300x129.png 300w, https:\/\/static.pingcap.com\/files\/2025\/05\/27235115\/Hybrid-Search-RAG-Workflow-768x330.png 768w, https:\/\/static.pingcap.com\/files\/2025\/05\/27235115\/Hybrid-Search-RAG-Workflow.png 1356w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em>Hybrid Search RAG Workflow<\/em><\/figcaption><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Get_Started_Using_Python\"><\/span>Get Started Using Python<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>The following tutorial demonstrates how to use full-text search in TiDB Cloud Serverless clusters with the <a href=\"https:\/\/github.com\/pingcap\/pytidb\">pytidb Python SDK<\/a>. This SDK provides friendly APIs to use vector search, full-text search, and hybrid search, making it easy to build AI applications on TiDB.<\/p>\n\n\n\n<p><strong>Create a TiDB Cloud Serverless Cluster in eu-central-1 Region<\/strong><\/p>\n\n\n\n<p>Full-text search is available in TiDB Cloud Serverless clusters of <a href=\"https:\/\/docs.pingcap.com\/tidbcloud\/vector-search-full-text-search-python\/#prerequisites\">limited regions<\/a>. If you don&#8217;t have one, follow the steps below to create a TiDB Cloud Serverless cluster for free:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>If you do not have a TiDB Cloud account, click <a href=\"https:\/\/tidbcloud.com\/free-trial\">\uc5ec\uae30<\/a> to sign up for an account.<\/li>\n\n\n\n<li><a href=\"https:\/\/tidbcloud.com\/\">Log in<\/a> to your TiDB Cloud account.<\/li>\n\n\n\n<li>On the <a href=\"https:\/\/tidbcloud.com\/console\/clusters\">Clusters<\/a> page, click <strong>Create Cluster<\/strong>.<\/li>\n\n\n\n<li>On the Create Cluster page, <strong>Starter<\/strong> \ub610\ub294 <strong>Serverless<\/strong> is selected by default. Select the <strong>AWS &#8211; Frankfurt (eu-central-1) region<\/strong> because currently full-text search is only available in limited regions.<\/li>\n\n\n\n<li>Click <strong>Create<\/strong> to create a TiDB Cloud Serverless cluster.<\/li>\n<\/ol>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"702\" src=\"https:\/\/static.pingcap.com\/files\/2025\/05\/27235317\/create-a-TiDB-Cloud-Serverless-cluster-1024x702.png\" alt=\"Create a TiDB Cloud Serverless cluster\" class=\"wp-image-27595\" style=\"width:750px\" srcset=\"https:\/\/static.pingcap.com\/files\/2025\/05\/27235317\/create-a-TiDB-Cloud-Serverless-cluster-1024x702.png 1024w, https:\/\/static.pingcap.com\/files\/2025\/05\/27235317\/create-a-TiDB-Cloud-Serverless-cluster-300x206.png 300w, https:\/\/static.pingcap.com\/files\/2025\/05\/27235317\/create-a-TiDB-Cloud-Serverless-cluster-768x526.png 768w, https:\/\/static.pingcap.com\/files\/2025\/05\/27235317\/create-a-TiDB-Cloud-Serverless-cluster-1536x1053.png 1536w, https:\/\/static.pingcap.com\/files\/2025\/05\/27235317\/create-a-TiDB-Cloud-Serverless-cluster-2048x1404.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em>Create a TiDB Cloud Serverless cluster<\/em><\/figcaption><\/figure>\n<\/div>\n\n\n<ol start=\"6\" class=\"wp-block-list\">\n<li>Your TiDB Cloud Serverless cluster will be created in approximately 30 seconds.<\/li>\n<\/ol>\n\n\n\n<p><strong>Install <\/strong><strong><a href=\"https:\/\/github.com\/pingcap\/pytidb\">pytidb SDK<\/a><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pip install 'pytidb&#91;models]'\n\n# If you only need basic capabilities:\n# pip install pytidb<\/code><\/pre>\n\n\n\n<p><strong>Connect to TiDB Cloud Serverless<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>from pytidb import TiDBClient\n\ndb = TiDBClient.connect(\n    host=\"gateway01.eu-central-1.prod.aws.tidbcloud.com\",\n    port=4000,\n    username=\"xxxxxxxxxxxxx.root\",\n    password=\"xxxxxxx\",\n    database=\"test\",\n)<\/code><\/pre>\n\n\n\n<p>The connection parameters to your cluster can be retrieved from the <a href=\"https:\/\/tidbcloud.com\/clusters\">TiDB Cloud console<\/a>:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>Navigate to the <a href=\"https:\/\/tidbcloud.com\/clusters\">Clusters page<\/a>, and then click the name of your target cluster to go to its overview page.<\/li>\n\n\n\n<li>Click <strong>Connect<\/strong> in the upper-right corner. A connection dialog is displayed, with connection parameters listed.<\/li>\n\n\n\n<li>Click <strong>Generate Password<\/strong> to generate a new random password if this is your first time connecting to your cluster. The generated password will not show again. If you do not set a password, you cannot connect to the cluster.<\/li>\n\n\n\n<li>Fill the connection parameters into your code.<\/li>\n<\/ol>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"685\" src=\"https:\/\/static.pingcap.com\/files\/2025\/05\/27235503\/Fill-connection-parameters-1024x685.png\" alt=\"Fill the connection parameters\" class=\"wp-image-27596\" style=\"width:750px\" srcset=\"https:\/\/static.pingcap.com\/files\/2025\/05\/27235503\/Fill-connection-parameters-1024x685.png 1024w, https:\/\/static.pingcap.com\/files\/2025\/05\/27235503\/Fill-connection-parameters-300x201.png 300w, https:\/\/static.pingcap.com\/files\/2025\/05\/27235503\/Fill-connection-parameters-768x514.png 768w, https:\/\/static.pingcap.com\/files\/2025\/05\/27235503\/Fill-connection-parameters-1536x1028.png 1536w, https:\/\/static.pingcap.com\/files\/2025\/05\/27235503\/Fill-connection-parameters-2048x1370.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em>Fill the connection parameters<\/em><\/figcaption><\/figure>\n<\/div>\n\n\n<p><strong>Create a table with full-text index and insert some sample data<\/strong><\/p>\n\n\n\n<p>To demonstrate TiDB&#8217;s hybrid-language search capabilities, we use several good names related to &#8220;bluetooth earphone&#8221; in multi-language (Japanese and English) as the sample data:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>from pytidb.schema import TableModel, Field\nfrom pytidb.datatype import Text\n\nclass StockItem(TableModel, table=True):\n    id: int = Field(primary_key=True)\n    title: str = Field(sa_type=Text)\n\ntable = db.create_table(schema=StockItem)\ntable.create_fts_index(\"title\")\ntable.bulk_insert(&#91;\n    {\"id\": 1, \"title\": \"\u30a4\u30e4\u30db\u30f3 bluetooth \u30ef\u30a4\u30e4\u30ec\u30b9\u30a4\u30e4\u30db\u30f3 \"},\n    {\"id\": 2, \"title\": \"\u5b8c\u5168\u30ef\u30a4\u30e4\u30ec\u30b9\u30a4\u30e4\u30db\u30f3\/\u30a6\u30eb\u30c8\u30e9\u30ce\u30a4\u30ba\u30ad\u30e3\u30f3\u30bb\u30ea\u30f3\u30b0 2.0 \"},\n    {\"id\": 3, \"title\": \"\u30ef\u30a4\u30e4\u30ec\u30b9 \u30d8\u30c3\u30c9\u30db\u30f3 Bluetooth 5.3 65\u6642\u9593\u518d\u751f \u30d8\u30c3\u30c9\u30db\u30f3 40mm HD \"},\n    {\"id\": 4, \"title\": \"\u697d\u5668\u7528 \u30aa\u30f3\u30a4\u30e4\u30fc\u30d8\u30c3\u30c9\u30db\u30f3 \u5bc6\u9589\u578b\u3010\u56fd\u5185\u6b63\u898f\u54c1\u3011\"},\n    {\"id\": 5, \"title\": \"\u30ef\u30a4\u30e4\u30ec\u30b9\u30a4\u30e4\u30db\u30f3 \u30cf\u30a4\u30d6\u30ea\u30c3\u30c9ANC\u642d\u8f7d 40dB\u307e\u3067\u30a2\u30af\u30c6\u30a3\u30d6\u30ce\u30a4\u30ba\u30ad\u30e3\u30f3\u30bb\u30eb\"},\n    {\"id\": 6, \"title\": \"Lightweight Bluetooth Earbuds with 48 Hours Playtime\"},\n    {\"id\": 7, \"title\": \"True Wireless Noise Cancelling Earbuds - Compatible with Apple &amp; Android, Built-in Microphone\"},\n    {\"id\": 8, \"title\": \"In-Ear Earbud Headphones with Mic, Black\"},\n    {\"id\": 9, \"title\": \"Wired Headphones, HD Bass Driven Audio, Lightweight Aluminum Wired in Ear Earbud Headphones\"},\n    {\"id\": 10, \"title\": \"LED Light Bar, Music Sync RGB Light Bar, USB Ambient Lamp\"},\n])<\/code><\/pre>\n\n\n\n<p><strong>Perform a full-text search<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>print(table.search(\"bluetooth\u30a4\u30e4\u30db\u30f3\", search_type=\"fulltext\").limit(3))<\/code><\/pre>\n\n\n\n<p>The query results are ordered by relevance, with the most relevant documents first:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;\n    {\"id\": 1, \"title\": \"\u30a4\u30e4\u30db\u30f3 bluetooth \u30ef\u30a4\u30e4\u30ec\u30b9\u30a4\u30e4\u30db\u30f3 \"},\n    {\"id\": 6, \"title\": \"Lightweight Bluetooth Earbuds with 48 Hours Playtime\"},\n    {\"id\": 2, \"title\": \"\u5b8c\u5168\u30ef\u30a4\u30e4\u30ec\u30b9\u30a4\u30e4\u30db\u30f3\/\u30a6\u30eb\u30c8\u30e9\u30ce\u30a4\u30ba\u30ad\u30e3\u30f3\u30bb\u30ea\u30f3\u30b0 2.0 \"},\n]<\/code><\/pre>\n\n\n\n<p>Please refer to the following TiDB documentation for the most up-to-date information:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/docs.pingcap.com\/tidbcloud\/vector-search-full-text-search-sql\/\">Full-Text Search with SQL<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/docs.pingcap.com\/tidbcloud\/vector-search-full-text-search-python\/\">Full-Text Search with Python<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/docs.pingcap.com\/tidbcloud\/vector-search-hybrid-search\/\">Hybrid Search<\/a><\/li>\n<\/ul>\n\n\n\n<p>And also <a href=\"https:\/\/pingcap.github.io\/pytidb\/\">pytidb documentation<\/a> \uadf8\ub9ac\uace0 <a href=\"https:\/\/github.com\/pingcap\/pytidb\/tree\/main\/examples\">examples<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Whats_Next\"><\/span>What&#8217;s Next<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>TiDB&#8217;s full-text search feature is currently in beta, and we will continuously improve its performance and usability. For example:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Better out-of-box search result for CJK languages<\/li>\n\n\n\n<li>Easier to use and more flexible APIs<\/li>\n\n\n\n<li>Better performance and scalability when used with multiple conditions<\/li>\n\n\n\n<li>Availability for TiDB self-managed clusters<\/li>\n<\/ul>\n\n\n\n<p>We are excited to see what you build with TiDB&#8217;s full-text search and vector search capabilities. If you have any questions or feedback, please join our <a href=\"https:\/\/discord.gg\/zcqexutz2R\">community on Discord<\/a>. Your input helps us make TiDB better for everyone.<\/p>","protected":false},"excerpt":{"rendered":"<p>At PingCAP, we strive to make TiDB your all-in-one AI database, capable of handling any workload seamlessly to fulfill the demand of the fast-evolving AI ecosystem. With vector search already available in TiDB, we are now excited to announce the native support for full-text search (beta) in TiDB Cloud Serverless(now called Starter) clusters. Full-text search [&hellip;]<\/p>\n","protected":false},"author":44,"featured_media":27620,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ub_ctt_via":"","footnotes":""},"categories":[13],"tags":[406,405,208,29,297],"class_list":["post-27584","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-product","tag-full-text-search","tag-genai","tag-tidb-serverless","tag-tutorial","tag-vector-search"],"acf":[],"featured_image_src":"https:\/\/static.pingcap.com\/files\/2025\/05\/28030738\/full-text-search-banner-scaled.png","author_info":{"display_name":"Wenxuan Shi","author_link":"https:\/\/www.pingcap.com\/ko\/blog\/author\/wenxuan-shi\/"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Full-Text Search in TiDB: Boost RAG with Hybrid Search<\/title>\n<meta name=\"description\" content=\"Discover how full-text search enhances relevance and accuracy in RAG applications\u2014and learn how to implement it with TiDB today.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.pingcap.com\/ko\/blog\/introducing-full-text-search-for-tidb\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Full-Text Search in TiDB: Boost RAG with Hybrid Search\" \/>\n<meta property=\"og:description\" content=\"Discover how full-text search enhances relevance and accuracy in RAG applications\u2014and learn how to implement it with TiDB today.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.pingcap.com\/ko\/blog\/introducing-full-text-search-for-tidb\/\" \/>\n<meta property=\"og:site_name\" content=\"TiDB\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/facebook.com\/pingcap2015\" \/>\n<meta property=\"article:published_time\" content=\"2025-05-28T07:14:35+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-27T07:39:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/static.pingcap.com\/files\/2025\/05\/28030805\/full-text-search-scaled.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1280\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Wenxuan Shi\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/static.pingcap.com\/files\/2025\/05\/28030805\/full-text-search-scaled.png\" \/>\n<meta name=\"twitter:creator\" content=\"@PingCAP\" \/>\n<meta name=\"twitter:site\" content=\"@PingCAP\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Wenxuan Shi\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.pingcap.com\/blog\/introducing-full-text-search-for-tidb\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/introducing-full-text-search-for-tidb\/\"},\"author\":{\"name\":\"Wenxuan Shi\",\"@id\":\"https:\/\/www.pingcap.com\/#\/schema\/person\/6a16722de773e5be36f02119a4cdc881\"},\"headline\":\"Introducing Full-Text Search for TiDB: Enhancing RAG Applications with Hybrid Search\",\"datePublished\":\"2025-05-28T07:14:35+00:00\",\"dateModified\":\"2025-08-27T07:39:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/introducing-full-text-search-for-tidb\/\"},\"wordCount\":1087,\"publisher\":{\"@id\":\"https:\/\/www.pingcap.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/introducing-full-text-search-for-tidb\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/static.pingcap.com\/files\/2025\/05\/28030738\/full-text-search-banner-scaled.png\",\"keywords\":[\"Full-Text Search\",\"GenAI\",\"TiDB Serverless\",\"Tutorial\",\"Vector Search\"],\"articleSection\":[\"Product\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.pingcap.com\/blog\/introducing-full-text-search-for-tidb\/\",\"url\":\"https:\/\/www.pingcap.com\/blog\/introducing-full-text-search-for-tidb\/\",\"name\":\"Full-Text Search in TiDB: Boost RAG with Hybrid Search\",\"isPartOf\":{\"@id\":\"https:\/\/www.pingcap.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/introducing-full-text-search-for-tidb\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/introducing-full-text-search-for-tidb\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/static.pingcap.com\/files\/2025\/05\/28030738\/full-text-search-banner-scaled.png\",\"datePublished\":\"2025-05-28T07:14:35+00:00\",\"dateModified\":\"2025-08-27T07:39:41+00:00\",\"description\":\"Discover how full-text search enhances relevance and accuracy in RAG applications\u2014and learn how to implement it with TiDB today.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/introducing-full-text-search-for-tidb\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.pingcap.com\/blog\/introducing-full-text-search-for-tidb\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.pingcap.com\/blog\/introducing-full-text-search-for-tidb\/#primaryimage\",\"url\":\"https:\/\/static.pingcap.com\/files\/2025\/05\/28030738\/full-text-search-banner-scaled.png\",\"contentUrl\":\"https:\/\/static.pingcap.com\/files\/2025\/05\/28030738\/full-text-search-banner-scaled.png\",\"width\":2560,\"height\":853,\"caption\":\"full-text-search-banner\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.pingcap.com\/blog\/introducing-full-text-search-for-tidb\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.pingcap.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Introducing Full-Text Search for TiDB: Enhancing RAG Applications with Hybrid Search\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.pingcap.com\/#website\",\"url\":\"https:\/\/www.pingcap.com\/\",\"name\":\"TiDB\",\"description\":\"TiDB | SQL at Scale\",\"publisher\":{\"@id\":\"https:\/\/www.pingcap.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.pingcap.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.pingcap.com\/#organization\",\"name\":\"PingCAP\",\"url\":\"https:\/\/www.pingcap.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.pingcap.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/static.pingcap.com\/files\/2021\/11\/pingcap-logo.png\",\"contentUrl\":\"https:\/\/static.pingcap.com\/files\/2021\/11\/pingcap-logo.png\",\"width\":811,\"height\":232,\"caption\":\"PingCAP\"},\"image\":{\"@id\":\"https:\/\/www.pingcap.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/facebook.com\/pingcap2015\",\"https:\/\/x.com\/PingCAP\",\"https:\/\/linkedin.com\/company\/pingcap\",\"https:\/\/youtube.com\/channel\/UCuq4puT32DzHKT5rU1IZpIA\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.pingcap.com\/#\/schema\/person\/6a16722de773e5be36f02119a4cdc881\",\"name\":\"Wenxuan Shi\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.pingcap.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/static.pingcap.com\/files\/2022\/10\/17234942\/avatar.jpg\",\"contentUrl\":\"https:\/\/static.pingcap.com\/files\/2022\/10\/17234942\/avatar.jpg\",\"caption\":\"Wenxuan Shi\"},\"description\":\"AI Search Development Lead\",\"url\":\"https:\/\/www.pingcap.com\/ko\/blog\/author\/wenxuan-shi\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Full-Text Search in TiDB: Boost RAG with Hybrid Search","description":"Discover how full-text search enhances relevance and accuracy in RAG applications\u2014and learn how to implement it with TiDB today.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.pingcap.com\/ko\/blog\/introducing-full-text-search-for-tidb\/","og_locale":"ko_KR","og_type":"article","og_title":"Full-Text Search in TiDB: Boost RAG with Hybrid Search","og_description":"Discover how full-text search enhances relevance and accuracy in RAG applications\u2014and learn how to implement it with TiDB today.","og_url":"https:\/\/www.pingcap.com\/ko\/blog\/introducing-full-text-search-for-tidb\/","og_site_name":"TiDB","article_publisher":"https:\/\/facebook.com\/pingcap2015","article_published_time":"2025-05-28T07:14:35+00:00","article_modified_time":"2025-08-27T07:39:41+00:00","og_image":[{"width":2560,"height":1280,"url":"https:\/\/static.pingcap.com\/files\/2025\/05\/28030805\/full-text-search-scaled.png","type":"image\/png"}],"author":"Wenxuan Shi","twitter_card":"summary_large_image","twitter_image":"https:\/\/static.pingcap.com\/files\/2025\/05\/28030805\/full-text-search-scaled.png","twitter_creator":"@PingCAP","twitter_site":"@PingCAP","twitter_misc":{"Written by":"Wenxuan Shi","Est. reading time":"6\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.pingcap.com\/blog\/introducing-full-text-search-for-tidb\/#article","isPartOf":{"@id":"https:\/\/www.pingcap.com\/blog\/introducing-full-text-search-for-tidb\/"},"author":{"name":"Wenxuan Shi","@id":"https:\/\/www.pingcap.com\/#\/schema\/person\/6a16722de773e5be36f02119a4cdc881"},"headline":"Introducing Full-Text Search for TiDB: Enhancing RAG Applications with Hybrid Search","datePublished":"2025-05-28T07:14:35+00:00","dateModified":"2025-08-27T07:39:41+00:00","mainEntityOfPage":{"@id":"https:\/\/www.pingcap.com\/blog\/introducing-full-text-search-for-tidb\/"},"wordCount":1087,"publisher":{"@id":"https:\/\/www.pingcap.com\/#organization"},"image":{"@id":"https:\/\/www.pingcap.com\/blog\/introducing-full-text-search-for-tidb\/#primaryimage"},"thumbnailUrl":"https:\/\/static.pingcap.com\/files\/2025\/05\/28030738\/full-text-search-banner-scaled.png","keywords":["Full-Text Search","GenAI","TiDB Serverless","Tutorial","Vector Search"],"articleSection":["Product"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/www.pingcap.com\/blog\/introducing-full-text-search-for-tidb\/","url":"https:\/\/www.pingcap.com\/blog\/introducing-full-text-search-for-tidb\/","name":"Full-Text Search in TiDB: Boost RAG with Hybrid Search","isPartOf":{"@id":"https:\/\/www.pingcap.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.pingcap.com\/blog\/introducing-full-text-search-for-tidb\/#primaryimage"},"image":{"@id":"https:\/\/www.pingcap.com\/blog\/introducing-full-text-search-for-tidb\/#primaryimage"},"thumbnailUrl":"https:\/\/static.pingcap.com\/files\/2025\/05\/28030738\/full-text-search-banner-scaled.png","datePublished":"2025-05-28T07:14:35+00:00","dateModified":"2025-08-27T07:39:41+00:00","description":"Discover how full-text search enhances relevance and accuracy in RAG applications\u2014and learn how to implement it with TiDB today.","breadcrumb":{"@id":"https:\/\/www.pingcap.com\/blog\/introducing-full-text-search-for-tidb\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.pingcap.com\/blog\/introducing-full-text-search-for-tidb\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.pingcap.com\/blog\/introducing-full-text-search-for-tidb\/#primaryimage","url":"https:\/\/static.pingcap.com\/files\/2025\/05\/28030738\/full-text-search-banner-scaled.png","contentUrl":"https:\/\/static.pingcap.com\/files\/2025\/05\/28030738\/full-text-search-banner-scaled.png","width":2560,"height":853,"caption":"full-text-search-banner"},{"@type":"BreadcrumbList","@id":"https:\/\/www.pingcap.com\/blog\/introducing-full-text-search-for-tidb\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.pingcap.com\/"},{"@type":"ListItem","position":2,"name":"Introducing Full-Text Search for TiDB: Enhancing RAG Applications with Hybrid Search"}]},{"@type":"WebSite","@id":"https:\/\/www.pingcap.com\/#website","url":"https:\/\/www.pingcap.com\/","name":"\ud2f0DB","description":"TiDB | SQL at Scale","publisher":{"@id":"https:\/\/www.pingcap.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.pingcap.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/www.pingcap.com\/#organization","name":"PingCAP","url":"https:\/\/www.pingcap.com\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.pingcap.com\/#\/schema\/logo\/image\/","url":"https:\/\/static.pingcap.com\/files\/2021\/11\/pingcap-logo.png","contentUrl":"https:\/\/static.pingcap.com\/files\/2021\/11\/pingcap-logo.png","width":811,"height":232,"caption":"PingCAP"},"image":{"@id":"https:\/\/www.pingcap.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/facebook.com\/pingcap2015","https:\/\/x.com\/PingCAP","https:\/\/linkedin.com\/company\/pingcap","https:\/\/youtube.com\/channel\/UCuq4puT32DzHKT5rU1IZpIA"]},{"@type":"Person","@id":"https:\/\/www.pingcap.com\/#\/schema\/person\/6a16722de773e5be36f02119a4cdc881","name":"Wenxuan Shi","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.pingcap.com\/#\/schema\/person\/image\/","url":"https:\/\/static.pingcap.com\/files\/2022\/10\/17234942\/avatar.jpg","contentUrl":"https:\/\/static.pingcap.com\/files\/2022\/10\/17234942\/avatar.jpg","caption":"Wenxuan Shi"},"description":"AI Search Development Lead","url":"https:\/\/www.pingcap.com\/ko\/blog\/author\/wenxuan-shi\/"}]}},"grav_blocks":false,"card_markup":"<a class=\"card-resource bg-white\" href=\"https:\/\/www.pingcap.com\/ko\/blog\/introducing-full-text-search-for-tidb\/\"><div class=\"card-resource__image-container\"><img class=\"card-resource__image\" alt=\"full-text-search-banner\" src=\"https:\/\/static.pingcap.com\/files\/2025\/05\/28030738\/full-text-search-banner-scaled.png\" loading=\"lazy\" width=2560 height=853 \/><\/div><div class=\"card-resource__content-container\"><div class=\"card-resource__content-head\"><div class=\"card-resource__category\">Product<\/div><\/div><h5 class=\"card-resource__title\">Introducing Full-Text Search for TiDB: Enhancing RAG Applications with Hybrid Search<\/h5><\/div><\/a>","_links":{"self":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/posts\/27584","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/users\/44"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/comments?post=27584"}],"version-history":[{"count":14,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/posts\/27584\/revisions"}],"predecessor-version":[{"id":29253,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/posts\/27584\/revisions\/29253"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/media\/27620"}],"wp:attachment":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/media?parent=27584"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/categories?post=27584"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/tags?post=27584"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}