{"title":"FTS5 फुल-टेक्स्ट खोज","slug":"fts5-search","category":"concepts","summary":"Synapse SQLite FTS5 का उपयोग सब-मिलीसेकंड फुल-टेक्स्ट मेमोरी खोज के लिए कैसे करता है।","audience":["human","llm"],"tags":["concept","search","fts5","fulltext"],"difficulty":"advanced","updated":"2026-06-27","word_count":677,"read_minutes":3,"lang":"hi","translated":true,"requested_lang":"hi","content_markdown":"\n# FTS5 फुल-टेक्स्ट खोज\n\nSynapse तेज़, लचीली मेमोरी खोज के लिए FTS5 (Full-Text Search 5) का उपयोग करता है। यह पृष्ठ बताता है कि यह कैसे काम करता है और इसे प्रभावी ढंग से कैसे उपयोग करें।\n\n## FTS5 क्या है?\n\nFTS5 एक SQLite एक्सटेंशन है (एक्सटेंशन के माध्यम से PostgreSQL में भी उपलब्ध) जो फुल-टेक्स्ट खोज क्षमताएँ प्रदान करता है। यह:\n\n- तेज़ कीवर्ड खोज के लिए टेक्स्ट सामग्री अनुक्रमित करता है\n- बूलियन ऑपरेटर्स (AND, OR, NOT) का समर्थन करता है\n- उद्धरण चिह्नों के साथ वाक्यांश मिलान का समर्थन करता है\n- `*` के साथ उपसर्ग मिलान का समर्थन करता है\n- प्रासंगिकता द्वारा परिणामों को क्रमबद्ध करता है\n\nSynapse सभी मेमोरी सामग्री को अनुक्रमित करने के लिए FTS5 का उपयोग करता है, हज़ारों मेमोरीज़ में सब-मिलीसेकंड खोज सक्षम बनाता है।\n\n## Synapse FTS5 का उपयोग कैसे करता है\n\nजब आप `POST /memory`:\n\n1. मेमोरी सामग्री `memories` तालिका में संग्रहीत होती है\n2. सामग्री FTS5 वर्चुअल तालिका में भी डाली जाती है\n3. FTS5 स्वचालित रूप से सामग्री को टोकनाइज़ और अनुक्रमित करता है\n\nजब आप `GET /memory/search?q=...`:\n\n1. Synapse FTS5 सिंटैक्स का उपयोग करके क्वेरी पार्स करता है\n2. FTS5 इंडेक्स के विरुद्ध `MATCH` निष्पादित करता है\n3. `mind_id` द्वारा फ़िल्टर करता है (टैनेंट आइसोलेशन)\n4. क्रमबद्ध परिणाम लौटाता है\n\n## क्वेरी सिंटैक्स\n\n### सरल कीवर्ड खोज\n\n```\n?q=docker\n```\n\n\"docker\" युक्त मेमोरीज़ लौटाता है।\n\n### कई कीवर्ड्स (अंतर्निहित AND)\n\n```\n?q=docker+swarm\n?q=docker%20swarm\n```\n\nBOTH \"docker\" और \"swarm\" युक्त मेमोरीज़ लौटाता है।\n\n### वाक्यांश मिलान\n\n```\n?q=\"docker+swarm\"\n?q=%22docker%20swarm%22\n```\n\nसटीक वाक्यांश \"docker swarm\" युक्त मेमोरीज़ लौटाता है।\n\n### उपसर्ग मिलान\n\n```\n?q=docker*\n```\n\n\"docker\" से शुरू होने वाले शब्दों वाली मेमोरीज़ लौटाता है (जैसे \"dockers\", \"dockerfile\", \"dockerize\")।\n\n### बूलियन OR\n\n```\n?q=docker+OR+kubernetes\n```\n\n\"docker\" OR \"kubernetes\" युक्त मेमोरीज़ लौटाता है।\n\n### बूलियन NOT\n\n```\n?q=docker+-swarm\n?q=docker+NOT+swarm\n```\n\n\"docker\" लेकिन NOT \"swarm\" युक्त मेमोरीज़ लौटाता है।\n\n### समूहीकरण\n\n```\n?q=(docker+OR+kubernetes)+-test\n```\n\n\"docker\" या \"kubernetes\", लेकिन \"test\" नहीं युक्त मेमोरीज़ लौटाता है।\n\n## व्यावहारिक उदाहरण\n\n### किसी परियोजना के बारे में मेमोरीज़ खोजें\n\n```bash\ncurl -H \"Authorization: Bearer YOUR_MIND_KEY\" \\\n     \"https://synapse.schaefer.zone/memory/search?q=synapse+deployment\"\n```\n\n### सटीक वाक्यांश खोजें\n\n```bash\ncurl -H \"Authorization: Bearer YOUR_MIND_KEY\" \\\n     \"https://synapse.schaefer.zone/memory/search?q=%22docker+swarm%22\"\n```\n\n### परीक्षण मेमोरीज़ बहिष्कृत करें\n\n```bash\ncurl -H \"Authorization: Bearer YOUR_MIND_KEY\" \\\n     \"https://synapse.schaefer.zone/memory/search?q=production+-test\"\n```\n\n### तकनीक द्वारा खोजें\n\n```bash\ncurl -H \"Authorization: Bearer YOUR_MIND_KEY\" \\\n     \"https://synapse.schaefer.zone/memory/search?q=(postgres+OR+sqlite)+-mysql\"\n```\n\n## क्रमांकन\n\nFTS5 BM25 एल्गोरिथ्म का उपयोग करके प्रासंगिकता द्वारा परिणाम क्रमबद्ध करता है। कारक:\n\n- शब्द आवृत्ति (शब्द कितनी बार दिखाई देता है)\n- विपरीत दस्तावेज़ आवृत्ति (दुर्लभ शब्द उच्च क्रम के)\n- दस्तावेज़ लंबाई (शब्द वाले छोटे दस्तावेज़ उच्च क्रम के)\n- कॉलम भार (title > content)\n\nपरिणाम क्रम क्रम में लौटाए जाते हैं (सबसे प्रासंगिक पहले)।\n\n## प्रदर्शन\n\n| ऑपरेशन | विलंबता |\n|-----------|---------|\n| 100 मेमोरीज़ खोज | < 5ms |\n| 1,000 मेमोरीज़ खोज | < 10ms |\n| 10,000 मेमोरीज़ खोज | < 25ms |\n| 100,000 मेमोरीज़ खोज | < 100ms |\n\nFTS5 रीड-हेवी वर्कलोड के लिए अत्यधिक अनुकूलित है।\n\n## सीमाएँ\n\n### स्टेमिंग\n\nFTS5 डिफ़ॉल्ट रूप से स्टेमिंग नहीं करता। \"running\" और \"run\" भिन्न शब्द हैं।\n\n**समाधान:** उपसर्ग मिलान का उपयोग करें: `?q=run*`\n\n### टाइपो सहिष्णुता\n\nFTS5 फ़ज़ी मिलान का समर्थन नहीं करता। टाइपो कोई परिणाम नहीं लौटाएगा।\n\n**समाधान:** वैचारिक मिलान के लिए सिमेंटिक खोज (`/memory/semantic-search`) का उपयोग करें।\n\n### स्टॉप शब्द\n\nसामान्य शब्द (the, a, an, is) अनुक्रमित होते हैं लेकिन खोज के लिए उपयोगी नहीं हो सकते। FTS5 इसे स्वचालित रूप से संभालता है।\n\n## FTS5 बनाम सिमेंटिक खोज\n\n| पहलू | FTS5 | सिमेंटिक खोज |\n|--------|------|-----------------|\n| गति | सब-मिलीसेकंड | 50-100ms |\n| मिलान | सटीक कीवर्ड्स | वैचारिक |\n| टाइपो सहिष्णुता | कोई नहीं | कुछ |\n| स्टेमिंग | कोई नहीं | अंतर्निहित |\n| Embeddings आवश्यक | नहीं | हाँ |\n| के लिए सर्वोत्तम | विशिष्ट शब्द | अवधारणाएँ |\n\nजब आप कीवर्ड्स जानते हैं तब FTS5 का उपयोग करें। जब आप \"X के बारे में मेमोरीज़\" चाहते हैं जहाँ X अलग ढंग से वर्णित है तब सिमेंटिक खोज का उपयोग करें।\n\n## सर्वोत्तम प्रथाएँ\n\n> [!TIP]\n> - **विशिष्ट शब्दों का उपयोग करें** — \"docker swarm\" \"container orchestration\" से बेहतर है\n> - **वाक्यांशों को उद्धृत करें** — `\"docker swarm\"` वाक्यांश मिलान सुनिश्चित करता है\n> - **विविधताओं के लिए उपसर्ग का उपयोग करें** — `deploy*` \"deploy\", \"deployment\", \"deploying\" पकड़ता है\n> - **शोर बहिष्कृत करें** — `-test` परीक्षण मेमोरीज़ फ़िल्टर करता है\n> - **टैग्स के साथ संयोजित करें** — `?q=docker&tag=production` परिणाम संकरा करता है\n\n## अगले कदम\n\n- [सिमेंटिक खोज](/docs/concepts/semantic-search)\n- [Memory API](/docs/api/memory)\n- [मेमोरी सर्वोत्तम प्रथाएँ](/docs/guides/memory-best-practices)\n","content_html":"<h1>FTS5 फुल-टेक्स्ट खोज</h1>\n<p>Synapse तेज़, लचीली मेमोरी खोज के लिए FTS5 (Full-Text Search 5) का उपयोग करता है। यह पृष्ठ बताता है कि यह कैसे काम करता है और इसे प्रभावी ढंग से कैसे उपयोग करें।</p>\n<h2>FTS5 क्या है?</h2>\n<p>FTS5 एक SQLite एक्सटेंशन है (एक्सटेंशन के माध्यम से PostgreSQL में भी उपलब्ध) जो फुल-टेक्स्ट खोज क्षमताएँ प्रदान करता है। यह:</p>\n<ul>\n<li>तेज़ कीवर्ड खोज के लिए टेक्स्ट सामग्री अनुक्रमित करता है</li>\n<li>बूलियन ऑपरेटर्स (AND, OR, NOT) का समर्थन करता है</li>\n<li>उद्धरण चिह्नों के साथ वाक्यांश मिलान का समर्थन करता है</li>\n<li><code>*</code> के साथ उपसर्ग मिलान का समर्थन करता है</li>\n<li>प्रासंगिकता द्वारा परिणामों को क्रमबद्ध करता है</li>\n</ul>\n<p>Synapse सभी मेमोरी सामग्री को अनुक्रमित करने के लिए FTS5 का उपयोग करता है, हज़ारों मेमोरीज़ में सब-मिलीसेकंड खोज सक्षम बनाता है।</p>\n<h2>Synapse FTS5 का उपयोग कैसे करता है</h2>\n<p>जब आप <code>POST /memory</code>:</p>\n<ol>\n<li>मेमोरी सामग्री <code>memories</code> तालिका में संग्रहीत होती है</li>\n<li>सामग्री FTS5 वर्चुअल तालिका में भी डाली जाती है</li>\n<li>FTS5 स्वचालित रूप से सामग्री को टोकनाइज़ और अनुक्रमित करता है</li>\n</ol>\n<p>जब आप <code>GET /memory/search?q=...</code>:</p>\n<ol>\n<li>Synapse FTS5 सिंटैक्स का उपयोग करके क्वेरी पार्स करता है</li>\n<li>FTS5 इंडेक्स के विरुद्ध <code>MATCH</code> निष्पादित करता है</li>\n<li><code>mind_id</code> द्वारा फ़िल्टर करता है (टैनेंट आइसोलेशन)</li>\n<li>क्रमबद्ध परिणाम लौटाता है</li>\n</ol>\n<h2>क्वेरी सिंटैक्स</h2>\n<h3>सरल कीवर्ड खोज</h3>\n<pre><code class=\"hljs language-plaintext\">?q=docker</code></pre><p>&quot;docker&quot; युक्त मेमोरीज़ लौटाता है।</p>\n<h3>कई कीवर्ड्स (अंतर्निहित AND)</h3>\n<pre><code class=\"hljs language-plaintext\">?q=docker+swarm\n?q=docker%20swarm</code></pre><p>BOTH &quot;docker&quot; और &quot;swarm&quot; युक्त मेमोरीज़ लौटाता है।</p>\n<h3>वाक्यांश मिलान</h3>\n<pre><code class=\"hljs language-plaintext\">?q=&quot;docker+swarm&quot;\n?q=%22docker%20swarm%22</code></pre><p>सटीक वाक्यांश &quot;docker swarm&quot; युक्त मेमोरीज़ लौटाता है।</p>\n<h3>उपसर्ग मिलान</h3>\n<pre><code class=\"hljs language-plaintext\">?q=docker*</code></pre><p>&quot;docker&quot; से शुरू होने वाले शब्दों वाली मेमोरीज़ लौटाता है (जैसे &quot;dockers&quot;, &quot;dockerfile&quot;, &quot;dockerize&quot;)।</p>\n<h3>बूलियन OR</h3>\n<pre><code class=\"hljs language-plaintext\">?q=docker+OR+kubernetes</code></pre><p>&quot;docker&quot; OR &quot;kubernetes&quot; युक्त मेमोरीज़ लौटाता है।</p>\n<h3>बूलियन NOT</h3>\n<pre><code class=\"hljs language-plaintext\">?q=docker+-swarm\n?q=docker+NOT+swarm</code></pre><p>&quot;docker&quot; लेकिन NOT &quot;swarm&quot; युक्त मेमोरीज़ लौटाता है।</p>\n<h3>समूहीकरण</h3>\n<pre><code class=\"hljs language-plaintext\">?q=(docker+OR+kubernetes)+-test</code></pre><p>&quot;docker&quot; या &quot;kubernetes&quot;, लेकिन &quot;test&quot; नहीं युक्त मेमोरीज़ लौटाता है।</p>\n<h2>व्यावहारिक उदाहरण</h2>\n<h3>किसी परियोजना के बारे में मेमोरीज़ खोजें</h3>\n<pre><code class=\"hljs language-bash\">curl -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_MIND_KEY&quot;</span> \\\n     <span class=\"hljs-string\">&quot;https://synapse.schaefer.zone/memory/search?q=synapse+deployment&quot;</span></code></pre><h3>सटीक वाक्यांश खोजें</h3>\n<pre><code class=\"hljs language-bash\">curl -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_MIND_KEY&quot;</span> \\\n     <span class=\"hljs-string\">&quot;https://synapse.schaefer.zone/memory/search?q=%22docker+swarm%22&quot;</span></code></pre><h3>परीक्षण मेमोरीज़ बहिष्कृत करें</h3>\n<pre><code class=\"hljs language-bash\">curl -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_MIND_KEY&quot;</span> \\\n     <span class=\"hljs-string\">&quot;https://synapse.schaefer.zone/memory/search?q=production+-test&quot;</span></code></pre><h3>तकनीक द्वारा खोजें</h3>\n<pre><code class=\"hljs language-bash\">curl -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_MIND_KEY&quot;</span> \\\n     <span class=\"hljs-string\">&quot;https://synapse.schaefer.zone/memory/search?q=(postgres+OR+sqlite)+-mysql&quot;</span></code></pre><h2>क्रमांकन</h2>\n<p>FTS5 BM25 एल्गोरिथ्म का उपयोग करके प्रासंगिकता द्वारा परिणाम क्रमबद्ध करता है। कारक:</p>\n<ul>\n<li>शब्द आवृत्ति (शब्द कितनी बार दिखाई देता है)</li>\n<li>विपरीत दस्तावेज़ आवृत्ति (दुर्लभ शब्द उच्च क्रम के)</li>\n<li>दस्तावेज़ लंबाई (शब्द वाले छोटे दस्तावेज़ उच्च क्रम के)</li>\n<li>कॉलम भार (title &gt; content)</li>\n</ul>\n<p>परिणाम क्रम क्रम में लौटाए जाते हैं (सबसे प्रासंगिक पहले)।</p>\n<h2>प्रदर्शन</h2>\n<table>\n<thead>\n<tr>\n<th>ऑपरेशन</th>\n<th>विलंबता</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>100 मेमोरीज़ खोज</td>\n<td>&lt; 5ms</td>\n</tr>\n<tr>\n<td>1,000 मेमोरीज़ खोज</td>\n<td>&lt; 10ms</td>\n</tr>\n<tr>\n<td>10,000 मेमोरीज़ खोज</td>\n<td>&lt; 25ms</td>\n</tr>\n<tr>\n<td>100,000 मेमोरीज़ खोज</td>\n<td>&lt; 100ms</td>\n</tr>\n</tbody></table>\n<p>FTS5 रीड-हेवी वर्कलोड के लिए अत्यधिक अनुकूलित है।</p>\n<h2>सीमाएँ</h2>\n<h3>स्टेमिंग</h3>\n<p>FTS5 डिफ़ॉल्ट रूप से स्टेमिंग नहीं करता। &quot;running&quot; और &quot;run&quot; भिन्न शब्द हैं।</p>\n<p><strong>समाधान:</strong> उपसर्ग मिलान का उपयोग करें: <code>?q=run*</code></p>\n<h3>टाइपो सहिष्णुता</h3>\n<p>FTS5 फ़ज़ी मिलान का समर्थन नहीं करता। टाइपो कोई परिणाम नहीं लौटाएगा।</p>\n<p><strong>समाधान:</strong> वैचारिक मिलान के लिए सिमेंटिक खोज (<code>/memory/semantic-search</code>) का उपयोग करें।</p>\n<h3>स्टॉप शब्द</h3>\n<p>सामान्य शब्द (the, a, an, is) अनुक्रमित होते हैं लेकिन खोज के लिए उपयोगी नहीं हो सकते। FTS5 इसे स्वचालित रूप से संभालता है।</p>\n<h2>FTS5 बनाम सिमेंटिक खोज</h2>\n<table>\n<thead>\n<tr>\n<th>पहलू</th>\n<th>FTS5</th>\n<th>सिमेंटिक खोज</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>गति</td>\n<td>सब-मिलीसेकंड</td>\n<td>50-100ms</td>\n</tr>\n<tr>\n<td>मिलान</td>\n<td>सटीक कीवर्ड्स</td>\n<td>वैचारिक</td>\n</tr>\n<tr>\n<td>टाइपो सहिष्णुता</td>\n<td>कोई नहीं</td>\n<td>कुछ</td>\n</tr>\n<tr>\n<td>स्टेमिंग</td>\n<td>कोई नहीं</td>\n<td>अंतर्निहित</td>\n</tr>\n<tr>\n<td>Embeddings आवश्यक</td>\n<td>नहीं</td>\n<td>हाँ</td>\n</tr>\n<tr>\n<td>के लिए सर्वोत्तम</td>\n<td>विशिष्ट शब्द</td>\n<td>अवधारणाएँ</td>\n</tr>\n</tbody></table>\n<p>जब आप कीवर्ड्स जानते हैं तब FTS5 का उपयोग करें। जब आप &quot;X के बारे में मेमोरीज़&quot; चाहते हैं जहाँ X अलग ढंग से वर्णित है तब सिमेंटिक खोज का उपयोग करें।</p>\n<h2>सर्वोत्तम प्रथाएँ</h2>\n<div class=\"callout callout-ok\"></div><h2>अगले कदम</h2>\n<ul>\n<li><a href=\"/docs/concepts/semantic-search\">सिमेंटिक खोज</a></li>\n<li><a href=\"/docs/api/memory\">Memory API</a></li>\n<li><a href=\"/docs/guides/memory-best-practices\">मेमोरी सर्वोत्तम प्रथाएँ</a></li>\n</ul>\n","urls":{"html":"/docs/concepts/fts5-search","text":"/docs/concepts/fts5-search?format=text","json":"/docs/concepts/fts5-search?format=json","llm":"/docs/concepts/fts5-search?format=llm"},"translations_available":["en","zh","hi","es","fr","ar","pt","ru","ja","de","it","ko","nl","pl","tr","sv","vi","th","id","uk"]}