| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- {
- "c2c82bd97fd0ade0adc84bffd0c24e479e130fbd55c1c760a9379bdb6215bdda": {
- "original": "* <a href=\"https://github.manticoresearch.com/manticoresoftware/manticoresearch?query=fature&filters%5Bcomment%5D%5B%5D=28798446&filters%5Bcommon%5D%5Brepo_id%5D%5B%5D=95614931&sort=&search=keyword-search-fuzzy-layouts\">This demo</a> demonstrates the fuzzy search functionality:\n {.scale-0.7}\n* Blog post about Fuzzy Search and Autocomplete - https://manticoresearch.com/blog/new-fuzzy-search-and-autocomplete/\n\n## CALL QSUGGEST, CALL SUGGEST\n\nBoth commands are accessible via SQL and support querying both local (plain and real-time) and distributed tables. The syntax is as follows:\nCODE_BLOCK_9\n\nThese commands provide all suggestions from the dictionary for a given word. They work only on tables with [infixing](../Creating_a_table/NLP_and_tokenization/Wildcard_searching_settings.md#min_infix_len) enabled and [dict=keywords](../Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#dict). They return the suggested keywords, Levenshtein distance between the suggested and original keywords, and the document statistics of the suggested keyword.\n\nIf the first parameter contains multiple words, then:\n* `CALL QSUGGEST` will return suggestions only for the **last** word, ignoring the rest.\n* `CALL SUGGEST` will return suggestions only for the **first** word.\n\nThat's the only difference between them. Several options are supported for customization:\n\n| Option | Description | Default |\n| - | - | - |\n| limit | Returns N top matches | 5 |\n| max_edits | Keeps only dictionary words with a Levenshtein distance less than or equal to N | 4 |\n| result_stats | Provides Levenshtein distance and document count of the found words | 1 (enabled) |\n| delta_len | Keeps only dictionary words with a length difference less than N | 3 |\n| max_matches | Number of matches to keep | 25 |\n| reject | Rejected words are matches that are not better than those already in the match queue. They are put in a rejected queue that gets reset in case one actually can go in the match queue. This parameter defines the size of the rejected queue (as reject*max(max_matched,limit)). If the rejected queue is filled, the engine stops looking for potential matches | 4 |\n| result_line | alternate mode to display the data by returning all suggests, distances and docs each per one row | 0 |\n| non_char | do not skip dictionary words with non alphabet symbols | 0 (skip such words) |\n| sentence | Returns the original sentence along with the last word replaced by the matched one. | 0 (do not return the full sentence) |\n| force_bigrams | Forces the use of bigrams (2-character n-grams) instead of trigrams for all word lengths, which can improve matching for words with transposition errors | 0 (use trigrams for words \u22656 characters) |\n\nTo show how it works, let's create a table and add a few documents to it.\n\nCODE_BLOCK_10\n<!-- example single -->\n##### Single word example\nAs you can see, the mistyped word \"crossb**U**dy\" gets corrected to \"crossbody\". By default, `CALL SUGGEST/QSUGGEST` return:\n\n* `distance` - the Levenshtein distance which means how many edits they had to make to convert the given word to the suggestion\n* `docs` - number of documents containing the suggested word\n\nTo disable the display of these statistics, you can use the option `0 as result_stats`.\n\n\n<!-- intro -->\n##### Example:\n\n<!-- request Example -->\n\nCODE_BLOCK_11\n<!-- response Example -->\n\nCODE_BLOCK_12\n<!-- end -->\n<!-- example first -->\n##### CALL SUGGEST takes only the first word\nIf the first parameter is not a single word, but multiple, then `CALL SUGGEST` will return suggestions only for the first word.\n\n\n<!-- intro -->\n##### Example:\n\n<!-- request Example -->\n\nCODE_BLOCK_13\n<!-- response Example -->\n\nCODE_BLOCK_14\n<!-- end -->\n<!-- example last -->\n##### CALL QSUGGEST takes only the last word\nIf the first parameter is not a single word, but multiple, then `CALL SUGGEST` will return suggestions only for the last word.\n\n\n<!-- intro -->\n##### Example:\n\n<!-- request Example -->\n\nCODE_BLOCK_15\n<!-- response Example -->\n\nCODE_BLOCK_16\n<!-- end -->\n\n<!-- example last2 -->\n\nAdding `1 as sentence` makes `CALL QSUGGEST` return the entire sentence with the last word corrected.\n\n<!-- request Example -->\nCODE_BLOCK_17\n<!-- response Example -->\nCODE_BLOCK_18\n<!-- end -->\n\n##### Different display mode\nThe `1 as result_line` option changes the way the suggestions are displayed in the output. Instead of showing each suggestion in a separate row, it displays all suggestions, distances, and docs in a single row. Here's an example to demonstrate this:\n\n<!-- intro -->\n##### Example:\n\n<!-- request Example -->\n\nCODE_BLOCK_19\n<!-- response Example -->\n\nCODE_BLOCK_20\n<!-- end -->\n\n##### Using force_bigrams for better transposition handling\nThe `force_bigrams` option can help with words that have transposition errors, such as \"ipohne\" vs \"iphone\". By using bigrams instead of trigrams, the algorithm can better handle character transpositions.\n\n<!-- intro -->\n##### Example:\n\n<!-- request Example -->\n\nCODE_BLOCK_21\n<!-- response Example -->\n\nCODE_BLOCK_22\n<!-- end -->\n\n### Demo\n\n* [This interactive course](https://play.manticoresearch.com/didyoumean/) shows how `CALL SUGGEST` works in a little web app.\n\n{.scale-0.5}\n\n\n<!-- proofread -->\n\n",
- "translations": {
- "chinese": "* <a href=\"https://github.manticoresearch.com/manticoresoftware/manticoresearch?query=fature&filters%5Bcomment%5D%5B%5D=28798446&filters%5Bcommon%5D%5Brepo_id%5D%5B%5D=95614931&sort=&search=keyword-search-fuzzy-layouts\">\u6b64\u6f14\u793a</a>\u5c55\u793a\u4e86\u6a21\u7cca\u641c\u7d22\u529f\u80fd\uff1a\n {.scale-0.7}\n* \u5173\u4e8e\u6a21\u7cca\u641c\u7d22\u548c\u81ea\u52a8\u5b8c\u6210\u529f\u80fd\u7684\u535a\u5ba2\u6587\u7ae0 - https://manticoresearch.com/blog/new-fuzzy-search-and-autocomplete/\n\n## CALL QSUGGEST, CALL SUGGEST\n\n\u8fd9\u4e24\u4e2a\u547d\u4ee4\u53ef\u901a\u8fc7 SQL \u8bbf\u95ee\uff0c\u652f\u6301\u67e5\u8be2\u672c\u5730\uff08\u666e\u901a\u548c\u5b9e\u65f6\uff09\u53ca\u5206\u5e03\u5f0f\u8868\u3002\u8bed\u6cd5\u5982\u4e0b\uff1a\nCODE_BLOCK_9\n\n\u8fd9\u4e9b\u547d\u4ee4\u4ece\u5b57\u5178\u4e2d\u63d0\u4f9b\u7ed9\u5b9a\u5355\u8bcd\u7684\u6240\u6709\u5efa\u8bae\u3002\u5b83\u4eec\u4ec5\u5728\u542f\u7528[\u4e2d\u7f00](../Creating_a_table/NLP_and_tokenization/Wildcard_searching_settings.md#min_infix_len)\u4e14\u8bbe\u7f6e\u4e3a[dict=keywords](../Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#dict)\u7684\u8868\u4e0a\u5de5\u4f5c\u3002\u5b83\u4eec\u8fd4\u56de\u5efa\u8bae\u7684\u5173\u952e\u5b57\u3001\u5efa\u8bae\u8bcd\u4e0e\u539f\u8bcd\u4e4b\u95f4\u7684Levenshtein\u8ddd\u79bb\u4ee5\u53ca\u5efa\u8bae\u5173\u952e\u5b57\u7684\u6587\u6863\u7edf\u8ba1\u4fe1\u606f\u3002\n\n\u5982\u679c\u7b2c\u4e00\u4e2a\u53c2\u6570\u5305\u542b\u591a\u4e2a\u5355\u8bcd\uff0c\u5219\uff1a\n* `CALL QSUGGEST` \u4ec5\u5bf9\u6700\u540e\u4e00\u4e2a\u5355\u8bcd\u8fd4\u56de\u5efa\u8bae\uff0c\u5ffd\u7565\u5176\u4ed6\u5355\u8bcd\u3002\n* `CALL SUGGEST` \u4ec5\u5bf9\u7b2c\u4e00\u4e2a\u5355\u8bcd\u8fd4\u56de\u5efa\u8bae\u3002\n\n\u8fd9\u5c31\u662f\u5b83\u4eec\u4e4b\u95f4\u7684\u552f\u4e00\u533a\u522b\u3002\u652f\u6301\u591a\u79cd\u9009\u9879\u8fdb\u884c\u81ea\u5b9a\u4e49\uff1a\n\n| \u9009\u9879 | \u63cf\u8ff0 | \u9ed8\u8ba4\u503c |\n| - | - | - |\n| limit | \u8fd4\u56de\u524dN\u4e2a\u5339\u914d\u9879 | 5 |\n| max_edits | \u4ec5\u4fdd\u7559Levenshtein\u8ddd\u79bb\u5c0f\u4e8e\u6216\u7b49\u4e8eN\u7684\u5b57\u5178\u8bcd | 4 |\n| result_stats | \u63d0\u4f9b\u627e\u5230\u5355\u8bcd\u7684Levenshtein\u8ddd\u79bb\u548c\u6587\u6863\u6570\u91cf | 1\uff08\u542f\u7528\uff09 |\n| delta_len | \u4ec5\u4fdd\u7559\u957f\u5ea6\u5dee\u5c0f\u4e8eN\u7684\u5b57\u5178\u8bcd | 3 |\n| max_matches | \u4fdd\u7559\u7684\u5339\u914d\u9879\u6570\u91cf | 25 |\n| reject | \u88ab\u62d2\u7edd\u7684\u8bcd\u662f\u90a3\u4e9b\u4e0d\u6bd4\u5339\u914d\u961f\u5217\u4e2d\u5df2\u6709\u7684\u8bcd\u66f4\u597d\u7684\u5339\u914d\u9879\u3002\u5b83\u4eec\u88ab\u653e\u5165\u4e00\u4e2a\u62d2\u7edd\u961f\u5217\uff0c\u5f53\u6709\u8bcd\u53ef\u4ee5\u8fdb\u5165\u5339\u914d\u961f\u5217\u65f6\u8be5\u961f\u5217\u4f1a\u91cd\u7f6e\u3002\u8be5\u53c2\u6570\u5b9a\u4e49\u62d2\u7edd\u961f\u5217\u7684\u5927\u5c0f\uff08\u4f5c\u4e3a reject*max(max_matched,limit)\uff09\u3002\u5982\u679c\u62d2\u7edd\u961f\u5217\u6ee1\uff0c \u5f15\u64ce\u505c\u6b62\u5bfb\u627e\u6f5c\u5728\u5339\u914d\u9879 | 4 |\n| result_line | \u53e6\u4e00\u79cd\u663e\u793a\u6570\u636e\u7684\u6a21\u5f0f\uff0c\u5c06\u6240\u6709\u5efa\u8bae\u3001\u8ddd\u79bb\u548c\u6587\u6863\u6570\u91cf\u5206\u522b\u6309\u884c\u8fd4\u56de | 0 |\n| non_char | \u4e0d\u8df3\u8fc7\u542b\u975e\u5b57\u6bcd\u7b26\u53f7\u7684\u5b57\u5178\u8bcd | 0\uff08\u8df3\u8fc7\u6b64\u7c7b\u8bcd\uff09 |\n| sentence | \u8fd4\u56de\u5305\u542b\u6700\u540e\u4e00\u4e2a\u5355\u8bcd\u66ff\u6362\u4e3a\u5339\u914d\u8bcd\u7684\u5b8c\u6574\u539f\u53e5\u3002 | 0\uff08\u4e0d\u8fd4\u56de\u5b8c\u6574\u53e5\u5b50\uff09 |\n| force_bigrams | \u5f3a\u5236\u5bf9\u6240\u6709\u8bcd\u957f\u4f7f\u7528\u4e8c\u5143\u7ec4\uff082\u5b57\u7b26n-grams\uff09\u4ee3\u66ff\u4e09\u5143\u7ec4\uff0c\u4ece\u800c\u63d0\u5347\u5904\u7406\u5b57\u7b26\u6362\u4f4d\u9519\u8bef\u7684\u5339\u914d\u80fd\u529b | 0\uff08\u5bf9\u8bcd\u957f\u22656\u5b57\u7b26\u4f7f\u7528\u4e09\u5143\u7ec4\uff09 |\n\n\u4e3a\u4e86\u6f14\u793a\u5b83\u7684\u5de5\u4f5c\u65b9\u5f0f\uff0c\u521b\u5efa\u4e00\u4e2a\u8868\u5e76\u6dfb\u52a0\u4e00\u4e9b\u6587\u6863\u3002\n\nCODE_BLOCK_10\n<!-- example single -->\n##### \u5355\u8bcd\u793a\u4f8b\n\u5982\u4f60\u6240\u89c1\uff0c\u62fc\u5199\u9519\u8bef\u7684\u5355\u8bcd\"crossb**U**dy\"\u88ab\u81ea\u52a8\u7ea0\u6b63\u4e3a\"crossbody\"\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c`CALL SUGGEST/QSUGGEST` \u8fd4\u56de\uff1a\n\n* `distance` - Levenshtein\u8ddd\u79bb\uff0c\u8868\u793a\u5c06\u7ed9\u5b9a\u5355\u8bcd\u8f6c\u6362\u4e3a\u5efa\u8bae\u8bcd\u6240\u9700\u7684\u7f16\u8f91\u6b21\u6570\n* `docs` - \u5305\u542b\u5efa\u8bae\u8bcd\u7684\u6587\u6863\u6570\u91cf\n\n\u8981\u7981\u7528\u8fd9\u4e9b\u7edf\u8ba1\u4fe1\u606f\u7684\u663e\u793a\uff0c\u53ef\u4ee5\u4f7f\u7528\u9009\u9879 `0 as result_stats`\u3002\n\n<!-- intro -->\n##### \u793a\u4f8b\uff1a\n\n<!-- request Example -->\n\nCODE_BLOCK_11\n<!-- response Example -->\n\nCODE_BLOCK_12\n<!-- end -->\n<!-- example first -->\n##### CALL SUGGEST \u4ec5\u5904\u7406\u7b2c\u4e00\u4e2a\u5355\u8bcd\n\u5982\u679c\u7b2c\u4e00\u4e2a\u53c2\u6570\u5305\u542b\u591a\u4e2a\u5355\u8bcd\uff0c\u5219 `CALL SUGGEST` \u53ea\u8fd4\u56de\u7b2c\u4e00\u4e2a\u5355\u8bcd\u7684\u5efa\u8bae\u3002\n\n<!-- intro -->\n##### \u793a\u4f8b\uff1a\n\n<!-- request Example -->\n\nCODE_BLOCK_13\n<!-- response Example -->\n\nCODE_BLOCK_14\n<!-- end -->\n<!-- example last -->\n##### CALL QSUGGEST \u4ec5\u5904\u7406\u6700\u540e\u4e00\u4e2a\u5355\u8bcd\n\u5982\u679c\u7b2c\u4e00\u4e2a\u53c2\u6570\u5305\u542b\u591a\u4e2a\u5355\u8bcd\uff0c\u5219 `CALL QSUGGEST` \u53ea\u8fd4\u56de\u6700\u540e\u4e00\u4e2a\u5355\u8bcd\u7684\u5efa\u8bae\u3002\n\n<!-- intro -->\n##### \u793a\u4f8b\uff1a\n\n<!-- request Example -->\n\nCODE_BLOCK_15\n<!-- response Example -->\n\nCODE_BLOCK_16\n<!-- end -->\n\n<!-- example last2 -->\n\n\u6dfb\u52a0\u53c2\u6570 `1 as sentence` \u4f1a\u4f7f `CALL QSUGGEST` \u8fd4\u56de\u6574\u4e2a\u53e5\u5b50\uff0c\u4e14\u6700\u540e\u4e00\u4e2a\u5355\u8bcd\u88ab\u66ff\u6362\u4e3a\u7ea0\u6b63\u540e\u7684\u8bcd\u3002\n\n<!-- request Example -->\nCODE_BLOCK_17\n<!-- response Example -->\nCODE_BLOCK_18\n<!-- end -->\n\n##### \u4e0d\u540c\u7684\u663e\u793a\u6a21\u5f0f\n\u9009\u9879 `1 as result_line` \u4f1a\u6539\u53d8\u5efa\u8bae\u9879\u7684\u8f93\u51fa\u663e\u793a\u65b9\u5f0f\u3002\u5b83\u4e0d\u662f\u5c06\u6bcf\u4e2a\u5efa\u8bae\u5206\u884c\u663e\u793a\uff0c\u800c\u662f\u5c06\u6240\u6709\u5efa\u8bae\u3001\u8ddd\u79bb\u548c\u6587\u6863\u4fe1\u606f\u5747\u5c55\u793a\u5728\u4e00\u884c\u3002\u4ee5\u4e0b\u793a\u4f8b\u6f14\u793a\u6b64\u529f\u80fd\uff1a\n\n<!-- intro -->\n##### \u793a\u4f8b\uff1a\n\n<!-- request Example -->\n\nCODE_BLOCK_19\n<!-- response Example -->\n\nCODE_BLOCK_20\n<!-- end -->\n\n##### \u4f7f\u7528 force_bigrams \u6539\u5584\u5b57\u7b26\u6362\u4f4d\u5904\u7406\n`force_bigrams` \u9009\u9879\u9002\u7528\u4e8e\u542b\u6709\u5b57\u7b26\u6362\u4f4d\u9519\u8bef\u7684\u5355\u8bcd\uff0c\u6bd4\u5982\u201cipohne\u201d\u4e0e\u201ciphone\u201d\u3002\u4f7f\u7528\u4e8c\u5143\u7ec4\u800c\u975e\u4e09\u5143\u7ec4\uff0c\u7b97\u6cd5\u53ef\u4ee5\u66f4\u597d\u5730\u5904\u7406\u5b57\u7b26\u7684\u6362\u4f4d\u3002\n\n<!-- intro -->\n##### \u793a\u4f8b\uff1a\n\n<!-- request Example -->\n\nCODE_BLOCK_21\n<!-- response Example -->\n\nCODE_BLOCK_22\n<!-- end -->\n\n### \u6f14\u793a\n\n* [\u8fd9\u4e2a\u4e92\u52a8\u6559\u7a0b](https://play.manticoresearch.com/didyoumean/) \u901a\u8fc7\u4e00\u4e2a\u5c0f\u578b\u7f51\u9875\u5e94\u7528\u5c55\u793a\u4e86 `CALL SUGGEST` \u7684\u5de5\u4f5c\u65b9\u5f0f\u3002\n\n{.scale-0.5}\n\n\n<!-- proofread -->",
- "russian": "* <a href=\"https://github.manticoresearch.com/manticoresoftware/manticoresearch?query=fature&filters%5Bcomment%5D%5B%5D=28798446&filters%5Bcommon%5D%5Brepo_id%5D%5B%5D=95614931&sort=&search=keyword-search-fuzzy-layouts\">\u0414\u0435\u043c\u043e</a> \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043d\u0435\u0447\u0435\u0442\u043a\u043e\u0433\u043e \u043f\u043e\u0438\u0441\u043a\u0430:\n {.scale-0.7}\n* \u041f\u043e\u0441\u0442 \u0432 \u0431\u043b\u043e\u0433\u0435 \u043e \u041d\u0435\u0447\u0435\u0442\u043a\u043e\u043c \u043f\u043e\u0438\u0441\u043a\u0435 \u0438 \u0410\u0432\u0442\u043e\u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 - https://manticoresearch.com/blog/new-fuzzy-search-and-autocomplete/\n\n## CALL QSUGGEST, CALL SUGGEST\n\n\u041e\u0431\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0447\u0435\u0440\u0435\u0437 SQL \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043a\u0430\u043a \u043a \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u043c (\u043e\u0431\u044b\u0447\u043d\u044b\u043c \u0438 real-time), \u0442\u0430\u043a \u0438 \u043a \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u043c. \u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439:\nCODE_BLOCK_9\n\n\u042d\u0442\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0432\u0441\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438\u0437 \u0441\u043b\u043e\u0432\u0430\u0440\u044f \u0434\u043b\u044f \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430. \u041e\u043d\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u043c\u0438, \u0443 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043e [\u0432\u0441\u0442\u0430\u0432\u043e\u0447\u043d\u043e\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435](../Creating_a_table/NLP_and_tokenization/Wildcard_searching_settings.md#min_infix_len) \u0438 [dict=keywords](../Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#dict). \u041e\u043d\u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0442 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c\u044b\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0441\u043b\u043e\u0432\u0430, \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u041b\u0435\u0432\u0435\u043d\u0448\u0442\u0435\u0439\u043d\u0430 \u043c\u0435\u0436\u0434\u0443 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u043c \u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c \u0441\u043b\u043e\u0432\u043e\u043c, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430.\n\n\u0415\u0441\u043b\u0438 \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u043e\u0432, \u0442\u043e:\n* `CALL QSUGGEST` \u0432\u0435\u0440\u043d\u0435\u0442 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f **\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e** \u0441\u043b\u043e\u0432\u0430, \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u044f \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435.\n* `CALL SUGGEST` \u0432\u0435\u0440\u043d\u0435\u0442 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f **\u043f\u0435\u0440\u0432\u043e\u0433\u043e** \u0441\u043b\u043e\u0432\u0430.\n\n\u0412\u043e\u0442 \u0438 \u0432\u0441\u044f \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438. \u0414\u043b\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u043f\u0446\u0438\u0439:\n\n| \u041e\u043f\u0446\u0438\u044f | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 | \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e |\n| - | - | - |\n| limit | \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 N \u043b\u0443\u0447\u0448\u0438\u0445 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0439 | 5 |\n| max_edits | \u041e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u043e\u0432\u0430 \u0438\u0437 \u0441\u043b\u043e\u0432\u0430\u0440\u044f \u0441 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u043c \u041b\u0435\u0432\u0435\u043d\u0448\u0442\u0435\u0439\u043d\u0430, \u043c\u0435\u043d\u044c\u0448\u0438\u043c \u0438\u043b\u0438 \u0440\u0430\u0432\u043d\u044b\u043c N | 4 |\n| result_stats | \u041f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u041b\u0435\u0432\u0435\u043d\u0448\u0442\u0435\u0439\u043d\u0430 \u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0445 \u0441\u043b\u043e\u0432 | 1 (\u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043e) |\n| delta_len | \u041e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u043e\u0432\u0430 \u0438\u0437 \u0441\u043b\u043e\u0432\u0430\u0440\u044f \u0441 \u0440\u0430\u0437\u043d\u0438\u0446\u0435\u0439 \u0432 \u0434\u043b\u0438\u043d\u0435 \u043c\u0435\u043d\u044c\u0448\u0435 N | 3 |\n| max_matches | \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c\u044b\u0445 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0439 | 25 |\n| reject | \u041e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u043d\u044b\u0435 \u0441\u043b\u043e\u0432\u0430 \u2014 \u044d\u0442\u043e \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u043b\u0443\u0447\u0448\u0435 \u0442\u0435\u0445, \u0447\u0442\u043e \u0443\u0436\u0435 \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0439. \u041e\u043d\u0438 \u043f\u043e\u043c\u0435\u0449\u0430\u044e\u0442\u0441\u044f \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0435\u0441\u043b\u0438 \u043e\u0434\u043d\u043e \u0438\u0437 \u0441\u043b\u043e\u0432 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043f\u0430\u0441\u0442\u044c \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0439. \u042d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0437\u0430\u0434\u0430\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u043d\u044b\u0445 (\u043a\u0430\u043a reject*max(max_matched,limit)). \u0415\u0441\u043b\u0438 \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u043d\u044b\u0445 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0430, \u0434\u0432\u0438\u0436\u043e\u043a \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0435\u0442 \u0438\u0441\u043a\u0430\u0442\u044c \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u044f | 4 |\n| result_line | \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0438\u0439 \u0432\u0441\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b \u043f\u043e \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 | 0 |\n| non_char | \u043d\u0435 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0441\u043b\u043e\u0432\u0430 \u0438\u0437 \u0441\u043b\u043e\u0432\u0430\u0440\u044f \u0441 \u043d\u0435\u0430\u043b\u0444\u0430\u0432\u0438\u0442\u043d\u044b\u043c\u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c\u0438 | 0 (\u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u0441\u043b\u043e\u0432\u0430) |\n| sentence | \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441 \u0437\u0430\u043c\u0435\u043d\u043e\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0441\u043b\u043e\u0432\u0430 \u043d\u0430 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u043e\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435. | 0 (\u043d\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435) |\n| force_bigrams | \u0424\u043e\u0440\u0441\u0438\u0440\u0443\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0431\u0438\u0433\u0440\u0430\u043c\u043c (2-\u0441\u0438\u043c\u0432\u043e\u043b\u044c\u043d\u044b\u0445 n-\u0433\u0440\u0430\u043c\u043c) \u0432\u043c\u0435\u0441\u0442\u043e \u0442\u0440\u0438\u0433\u0440\u0430\u043c\u043c \u0434\u043b\u044f \u0441\u043b\u043e\u0432 \u043b\u044e\u0431\u043e\u0439 \u0434\u043b\u0438\u043d\u044b, \u0447\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u043f\u043e\u0438\u0441\u043a \u0434\u043b\u044f \u0441\u043b\u043e\u0432 \u0441 \u043e\u0448\u0438\u0431\u043a\u0430\u043c\u0438 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 | 0 (\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0440\u0438\u0433\u0440\u0430\u043c\u043c\u044b \u0434\u043b\u044f \u0441\u043b\u043e\u0432 \u22656 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432) |\n\n\u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c, \u043a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0432 \u043d\u0435\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432.\n\nCODE_BLOCK_10\n<!-- example single -->\n##### \u041f\u0440\u0438\u043c\u0435\u0440 \u0441 \u043e\u0434\u043d\u0438\u043c \u0441\u043b\u043e\u0432\u043e\u043c\n\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435, \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 \u0441\u043b\u043e\u0432\u043e \"crossb**U**dy\" \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \"crossbody\". \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e `CALL SUGGEST/QSUGGEST` \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0442:\n\n* `distance` - \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u041b\u0435\u0432\u0435\u043d\u0448\u0442\u0435\u0439\u043d\u0430, \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0449\u0435\u0435, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0435 \u0441\u043b\u043e\u0432\u043e \u0432 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435\n* `docs` - \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0445 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0435 \u0441\u043b\u043e\u0432\u043e\n\n\u0427\u0442\u043e\u0431\u044b \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u044d\u0442\u0438\u0445 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a, \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u043f\u0446\u0438\u044e `0 as result_stats`.\n\n\n<!-- intro -->\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n<!-- request Example -->\n\nCODE_BLOCK_11\n<!-- response Example -->\n\nCODE_BLOCK_12\n<!-- end -->\n<!-- example first -->\n##### CALL SUGGEST \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0435\u0440\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e\n\u0415\u0441\u043b\u0438 \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u043e\u0432, \u0442\u043e `CALL SUGGEST` \u0432\u0435\u0440\u043d\u0435\u0442 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430.\n\n\n<!-- intro -->\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n<!-- request Example -->\n\nCODE_BLOCK_13\n<!-- response Example -->\n\nCODE_BLOCK_14\n<!-- end -->\n<!-- example last -->\n##### CALL QSUGGEST \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0441\u043b\u043e\u0432\u043e\n\u0415\u0441\u043b\u0438 \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u043e\u0432, \u0442\u043e `CALL QSUGGEST` \u0432\u0435\u0440\u043d\u0435\u0442 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0441\u043b\u043e\u0432\u0430.\n\n\n<!-- intro -->\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n<!-- request Example -->\n\nCODE_BLOCK_15\n<!-- response Example -->\n\nCODE_BLOCK_16\n<!-- end -->\n\n<!-- example last2 -->\n\n\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 `1 as sentence` \u0437\u0430\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 `CALL QSUGGEST` \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c \u0441\u043b\u043e\u0432\u043e\u043c.\n\n<!-- request Example -->\nCODE_BLOCK_17\n<!-- response Example -->\nCODE_BLOCK_18\n<!-- end -->\n\n##### \u0414\u0440\u0443\u0433\u043e\u0439 \u0440\u0435\u0436\u0438\u043c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\n\u041e\u043f\u0446\u0438\u044f `1 as result_line` \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u0442 \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0432 \u0432\u044b\u0432\u043e\u0434\u0435. \u0412\u043c\u0435\u0441\u0442\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435, \u0432\u0441\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0442\u0441\u044f \u0432 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435. \u0412\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440:\n\n<!-- intro -->\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n<!-- request Example -->\n\nCODE_BLOCK_19\n<!-- response Example -->\n\nCODE_BLOCK_20\n<!-- end -->\n\n##### \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 force_bigrams \u0434\u043b\u044f \u043b\u0443\u0447\u0448\u0435\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u0448\u0438\u0431\u043e\u043a \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438\n\u041e\u043f\u0446\u0438\u044f `force_bigrams` \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441\u043e \u0441\u043b\u043e\u0432\u0430\u043c\u0438 \u0441 \u043e\u0448\u0438\u0431\u043a\u0430\u043c\u0438 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \"ipohne\" \u0432\u043c\u0435\u0441\u0442\u043e \"iphone\". \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0431\u0438\u0433\u0440\u0430\u043c\u043c \u0432\u043c\u0435\u0441\u0442\u043e \u0442\u0440\u0438\u0433\u0440\u0430\u043c\u043c \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0443 \u043b\u0443\u0447\u0448\u0435 \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0441 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\u043c\u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432.\n\n<!-- intro -->\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n<!-- request Example -->\n\nCODE_BLOCK_21\n<!-- response Example -->\n\nCODE_BLOCK_22\n<!-- end -->\n\n### \u0414\u0435\u043c\u043e\n\n* [\u042d\u0442\u043e\u0442 \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u043a\u0443\u0440\u0441](https://play.manticoresearch.com/didyoumean/) \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 `CALL SUGGEST` \u0432 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u043c \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438.\n\n{.scale-0.5}\n\n\n<!-- proofread -->\n\n"
- },
- "is_code_or_comment": false,
- "model": "openai:gpt-4.1-mini",
- "updated_at": 1766339811
- },
- "91e90670fc49428650d7ad52d91a812dbdfd98d71f6629fca2ae735563364246": {
- "original": "# Spell correction\n\nSpell correction, also known as:\n\n* Auto correction\n* Text correction\n* Fixing spelling errors\n* Typo tolerance\n* \"Did you mean?\"\n\nand so on, is a software functionality that suggests alternatives to or makes automatic corrections of the text you have typed in. The concept of correcting typed text dates back to the 1960s when computer scientist Warren Teitelman, who also invented the \"undo\" command, introduced a philosophy of computing called D.W.I.M., or \"Do What I Mean.\" Instead of programming computers to accept only perfectly formatted instructions, Teitelman argued that they should be programmed to recognize obvious mistakes.\n\nThe first well-known product to provide spell correction functionality was Microsoft Word 6.0, released in 1993.\n\n### How it works\n\nThere are a few ways spell correction can be done, but it's important to note that there is no purely programmatic way to convert your mistyped \"ipone\" into \"iphone\" with decent quality. Mostly, there has to be a dataset the system is based on. The dataset can be:\n\n* A dictionary of properly spelled words, which in turn can be:\n * Based on your real data. The idea here is that, for the most part, the spelling in the dictionary made up of your data is correct, and the system tries to find a word that is most similar to the typed word (we'll discuss how this can be done with Manticore shortly).\n * Or it can be based on an external dictionary unrelated to your data. The issue that may arise here is that your data and the external dictionary can be too different: some words may be missing in the dictionary, while others may be missing in your data.\n* Not just dictionary-based, but also context-aware, e.g., \"white ber\" would be corrected to \"white bear,\" while \"dark ber\" would be corrected to \"dark beer.\" The context might not just be a neighboring word in your query, but also your location, time of day, the current sentence's grammar (to change \"there\" to \"their\" or not), your search history, and virtually any other factors that can affect your intent.\n* Another classic approach is to use previous search queries as the dataset for spell correction. This is even more utilized in [autocomplete](../Searching/Autocomplete.md) functionality but makes sense for autocorrect too. The idea is that users are mostly right with spelling, so we can use words from their search history as a source of truth, even if we don't have the words in our documents or use an external dictionary. Context-awareness is also possible here.\n\nManticore provides the fuzzy search option and the commands `CALL QSUGGEST` and `CALL SUGGEST` that can be used for automatic spell correction purposes.\n\n## Fuzzy Search\n\nThe Fuzzy Search feature allows for more flexible matching by accounting for slight variations or misspellings in the search query. It works similarly to a normal `SELECT` SQL statement or a `/search` JSON request but provides additional parameters to control the fuzzy matching behavior.\n\n> NOTE: The `fuzzy` option requires [Manticore Buddy](../Installation/Manticore_Buddy.md). If it doesn't work, make sure Buddy is installed.\n\n> NOTE: The `fuzzy` option is not available for [multi-queries](../Searching/Multi-queries.md).\n\n## General syntax\n\n### SQL\n\n<!-- example Fuzzy_Search_SQL -->\n\nCODE_BLOCK_0\n\nNote: When conducting a fuzzy search via SQL, the MATCH clause should not contain any full-text operators except the [phrase search operator](../Searching/Full_text_matching/Operators.md#Phrase-search-operator) and should only include the words you intend to match.\n\n<!-- intro -->\n##### SQL:\n\n<!-- request SQL -->\n\nCODE_BLOCK_1\n\n<!-- request SQL with additional filters -->\nExample of a more complex Fuzzy search query with additional filters:\n\nCODE_BLOCK_2\n\n<!-- request JSON -->\n\nCODE_BLOCK_3\n\n<!-- response SQL -->\n\nCODE_BLOCK_4\n\n<!-- request SQL with preserve option -->\n\nCODE_BLOCK_5\n\n<!-- request JSON with preserve option -->\n\nCODE_BLOCK_6\n\n<!-- response SQL with preserve option -->\n\nCODE_BLOCK_7\n\n<!-- end -->\n\n### JSON\n\nCODE_BLOCK_8\n\nNote: If you use the [query_string](../Searching/Full_text_matching/Basic_usage.md#query_string), be aware that it does not support full-text operators except the [phrase search operator](../Searching/Full_text_matching/Operators.md#Phrase-search-operator). The query string should consist solely of the words you wish to match.\n\n### Options\n\n- `fuzzy`: Turn fuzzy search on or off.\n- `distance`: Set the Levenshtein distance for matching. The default is `2`.\n- `preserve`: `0` or `1` (default: `0`). When set to `1`, keeps words that don't have fuzzy matches in the search results (e.g., \"hello wrld\" returns both \"hello wrld\" and \"hello world\"). When set to `0`, only returns words with successful fuzzy matches (e.g., \"hello wrld\" returns only \"hello world\"). Particularly useful for preserving short words or proper nouns that may not exist in Manticore Search.\n- `layouts`: Keyboard layouts for detecting typing errors caused by keyboard layout mismatches (e.g., typing \"ghbdtn\" instead of \"\u043f\u0440\u0438\u0432\u0435\u0442\" when using wrong layout). Manticore compares character positions across different layouts to suggest corrections. Requires at least 2 layouts to effectively detect mismatches. No layouts are used by default. Use an empty string `''` (SQL) or array `[]` (JSON) to turn this off. Supported layouts include:\n - `be` - Belgian AZERTY layout\n - `bg` - Standard Bulgarian layout\n - `br` - Brazilian QWERTY layout\n - `ch` - Swiss QWERTZ layout\n - `de` - German QWERTZ layout\n - `dk` - Danish QWERTY layout\n - `es` - Spanish QWERTY layout\n - `fr` - French AZERTY layout\n - `uk` - British QWERTY layout\n - `gr` - Greek QWERTY layout\n - `it` - Italian QWERTY layout\n - `no` - Norwegian QWERTY layout\n - `pt` - Portuguese QWERTY layout\n - `ru` - Russian JCUKEN layout\n - `se` - Swedish QWERTY layout\n - `ua` - Ukrainian JCUKEN layout\n - `us` - American QWERTY layout\n\n\n### Links",
- "translations": {
- "chinese": "# \u62fc\u5199\u7ea0\u6b63\n\n\u62fc\u5199\u7ea0\u6b63\uff0c\u4e5f\u79f0\u4e3a\uff1a\n\n* \u81ea\u52a8\u7ea0\u6b63\n* \u6587\u672c\u7ea0\u6b63\n* \u4fee\u6b63\u62fc\u5199\u9519\u8bef\n* \u5bb9\u9519\u62fc\u5199\n* \u201c\u4f60\u7684\u610f\u601d\u662f\uff1f\u201d\n\n\u7b49\u7b49\uff0c\u662f\u4e00\u79cd\u8f6f\u4ef6\u529f\u80fd\uff0c\u5efa\u8bae\u66ff\u4ee3\u8bcd\u6216\u81ea\u52a8\u66f4\u6b63\u4f60\u8f93\u5165\u7684\u6587\u672c\u3002\u7ea0\u6b63\u8f93\u5165\u6587\u672c\u7684\u6982\u5ff5\u53ef\u4ee5\u8ffd\u6eaf\u523020\u4e16\u7eaa60\u5e74\u4ee3\uff0c\u5f53\u65f6\u8ba1\u7b97\u673a\u79d1\u5b66\u5bb6Warren Teitelman\uff0c\u4ed6\u8fd8\u53d1\u660e\u4e86\u201c\u64a4\u9500\u201d\u547d\u4ee4\uff0c\u63d0\u51fa\u4e86\u4e00\u79cd\u79f0\u4e3aD.W.I.M.\uff08\u201c\u505a\u6211\u610f\u601d\u201d\u7684\u610f\u601d\uff09\u7684\u8ba1\u7b97\u54f2\u5b66\u3002Teitelman\u8ba4\u4e3a\uff0c\u4e0e\u5176\u8ba9\u8ba1\u7b97\u673a\u53ea\u63a5\u53d7\u5b8c\u7f8e\u683c\u5f0f\u5316\u7684\u6307\u4ee4\uff0c\u4e0d\u5982\u8ba9\u5b83\u4eec\u88ab\u7f16\u7a0b\u8bc6\u522b\u660e\u663e\u7684\u9519\u8bef\u3002\n\n\u7b2c\u4e00\u4e2a\u63d0\u4f9b\u62fc\u5199\u7ea0\u6b63\u529f\u80fd\u7684\u77e5\u540d\u4ea7\u54c1\u662f\u5fae\u8f6fWord 6.0\uff0c\u4e8e1993\u5e74\u53d1\u5e03\u3002\n\n### \u5de5\u4f5c\u539f\u7406\n\n\u62fc\u5199\u7ea0\u6b63\u53ef\u4ee5\u6709\u51e0\u79cd\u65b9\u5f0f\uff0c\u4f46\u9700\u8981\u6307\u51fa\u7684\u662f\uff0c\u6ca1\u6709\u7eaf\u7a0b\u5e8f\u5316\u7684\u65b9\u6cd5\u80fd\u591f\u9ad8\u8d28\u91cf\u5730\u5c06\u4f60\u8f93\u5165\u9519\u8bef\u7684\u201cipone\u201d\u8f6c\u6362\u6210\u201ciphone\u201d\u3002\u5927\u591a\u6570\u60c5\u51b5\u4e0b\uff0c\u7cfb\u7edf\u5fc5\u987b\u57fa\u4e8e\u67d0\u4e2a\u6570\u636e\u96c6\u3002\u6570\u636e\u96c6\u53ef\u4ee5\u662f\uff1a\n\n* \u4e00\u4e2a\u6b63\u786e\u62fc\u5199\u5355\u8bcd\u7684\u8bcd\u5178\uff0c\u5176\u53c8\u53ef\u4ee5\u662f\uff1a\n * \u57fa\u4e8e\u4f60\u7684\u771f\u5b9e\u6570\u636e\u3002\u8fd9\u91cc\u7684\u60f3\u6cd5\u662f\uff0c\u8bcd\u5178\u4e2d\u7531\u4f60\u7684\u6570\u636e\u7ec4\u6210\u7684\u62fc\u5199\u5728\u5927\u90e8\u5206\u60c5\u51b5\u4e0b\u662f\u6b63\u786e\u7684\uff0c\u7cfb\u7edf\u5c1d\u8bd5\u627e\u5230\u6700\u76f8\u4f3c\u7684\u5355\u8bcd\uff08\u6211\u4eec\u7a0d\u540e\u4f1a\u8ba8\u8bba\u5982\u4f55\u7528Manticore\u5b9e\u73b0\uff09\u3002\n * \u6216\u57fa\u4e8e\u4e0e\u4f60\u7684\u6570\u636e\u65e0\u5173\u7684\u5916\u90e8\u8bcd\u5178\u3002\u8fd9\u91cc\u53ef\u80fd\u51fa\u73b0\u7684\u95ee\u9898\u662f\u4f60\u7684\u6570\u636e\u548c\u5916\u90e8\u8bcd\u5178\u53ef\u80fd\u5dee\u5f02\u5f88\u5927\uff1a\u67d0\u4e9b\u8bcd\u5728\u8bcd\u5178\u4e2d\u7f3a\u5931\uff0c\u800c\u53e6\u4e00\u4e9b\u8bcd\u5219\u5728\u4f60\u7684\u6570\u636e\u4e2d\u7f3a\u5931\u3002\n* \u4e0d\u4ec5\u57fa\u4e8e\u8bcd\u5178\uff0c\u8fd8\u53ef\u4ee5\u662f\u4e0a\u4e0b\u6587\u611f\u77e5\u7684\uff0c\u4f8b\u5982\uff0c\u201cwhite ber\u201d\u4f1a\u88ab\u7ea0\u6b63\u4e3a\u201cwhite bear\u201d\uff0c\u800c\u201cdark ber\u201d\u4f1a\u88ab\u7ea0\u6b63\u4e3a\u201cdark beer\u201d\u3002\u4e0a\u4e0b\u6587\u4e0d\u4ec5\u53ef\u80fd\u662f\u67e5\u8be2\u4e2d\u7684\u76f8\u90bb\u8bcd\uff0c\u8fd8\u53ef\u80fd\u662f\u4f60\u7684\u5730\u7406\u4f4d\u7f6e\u3001\u4e00\u5929\u4e2d\u7684\u65f6\u95f4\u3001\u5f53\u524d\u53e5\u5b50\u7684\u8bed\u6cd5\uff08\u662f\u5426\u5c06\u201cthere\u201d\u6539\u4e3a\u201ctheir\u201d\uff09\u3001\u4f60\u7684\u641c\u7d22\u5386\u53f2\u4ee5\u53ca\u51e0\u4e4e\u6240\u6709\u53ef\u80fd\u5f71\u54cd\u4f60\u610f\u56fe\u7684\u5176\u4ed6\u56e0\u7d20\u3002\n* \u53e6\u4e00\u4e2a\u7ecf\u5178\u65b9\u6cd5\u662f\u4f7f\u7528\u4ee5\u524d\u7684\u641c\u7d22\u67e5\u8be2\u4f5c\u4e3a\u62fc\u5199\u7ea0\u6b63\u7684\u6570\u636e\u96c6\u3002\u8fd9\u5728[\u81ea\u52a8\u5b8c\u6210](../Searching/Autocomplete.md)\u529f\u80fd\u4e2d\u5e94\u7528\u66f4\u591a\uff0c\u4f46\u5bf9\u81ea\u52a8\u7ea0\u6b63\u540c\u6837\u6709\u610f\u4e49\u3002\u5176\u601d\u8def\u662f\u7528\u6237\u5927\u591a\u6570\u60c5\u51b5\u4e0b\u62fc\u5199\u662f\u6b63\u786e\u7684\uff0c\u56e0\u6b64\u6211\u4eec\u53ef\u4ee5\u5c06\u4ed6\u4eec\u641c\u7d22\u5386\u53f2\u4e2d\u7684\u5355\u8bcd\u4f5c\u4e3a\u771f\u5b9e\u6765\u6e90\uff0c\u5373\u4f7f\u8fd9\u4e9b\u8bcd\u4e0d\u5728\u6211\u4eec\u7684\u6587\u6863\u4e2d\u6216\u5916\u90e8\u8bcd\u5178\u4e2d\u3002\u8fd9\u91cc\u540c\u6837\u53ef\u4ee5\u5b9e\u73b0\u4e0a\u4e0b\u6587\u611f\u77e5\u3002\n\nManticore \u63d0\u4f9b\u4e86\u6a21\u7cca\u641c\u7d22\u9009\u9879\u4ee5\u53ca\u53ef\u7528\u4e8e\u81ea\u52a8\u62fc\u5199\u7ea0\u6b63\u7684\u547d\u4ee4 `CALL QSUGGEST` \u548c `CALL SUGGEST`\u3002\n\n## \u6a21\u7cca\u641c\u7d22\n\n\u6a21\u7cca\u641c\u7d22\u529f\u80fd\u5141\u8bb8\u66f4\u7075\u6d3b\u7684\u5339\u914d\uff0c\u901a\u8fc7\u8003\u8651\u67e5\u8be2\u4e2d\u7684\u8f7b\u5fae\u53d8\u4f53\u6216\u62fc\u5199\u9519\u8bef\u5b9e\u73b0\u3002\u5176\u5de5\u4f5c\u65b9\u5f0f\u7c7b\u4f3c\u4e8e\u666e\u901a\u7684 `SELECT` SQL\u8bed\u53e5\u6216 `/search` JSON\u8bf7\u6c42\uff0c\u4f46\u63d0\u4f9b\u4e86\u989d\u5916\u7684\u53c2\u6570\u4ee5\u63a7\u5236\u6a21\u7cca\u5339\u914d\u884c\u4e3a\u3002\n\n> \u6ce8\u610f\uff1a`fuzzy` \u9009\u9879\u9700\u8981 [Manticore Buddy](../Installation/Manticore_Buddy.md)\u3002\u5982\u679c\u4e0d\u8d77\u4f5c\u7528\uff0c\u8bf7\u786e\u4fdd Buddy \u5df2\u5b89\u88c5\u3002\n\n> \u6ce8\u610f\uff1a`fuzzy` \u9009\u9879\u5728[\u591a\u67e5\u8be2](../Searching/Multi-queries.md)\u4e2d\u4e0d\u53ef\u7528\u3002\n\n## \u901a\u7528\u8bed\u6cd5\n\n### SQL\n\n<!-- example Fuzzy_Search_SQL -->\n\nCODE_BLOCK_0\n\n\u6ce8\u610f\uff1a\u901a\u8fc7 SQL \u8fdb\u884c\u6a21\u7cca\u641c\u7d22\u65f6\uff0cMATCH \u5b50\u53e5\u4e0d\u5f97\u5305\u542b\u4efb\u4f55\u5168\u6587\u68c0\u7d22\u8fd0\u7b97\u7b26\uff0c\u9664\u975e\u662f[\u77ed\u8bed\u641c\u7d22\u8fd0\u7b97\u7b26](../Searching/Full_text_matching/Operators.md#Phrase-search-operator)\uff0c\u4e14\u5e94\u4ec5\u5305\u542b\u4f60\u60f3\u5339\u914d\u7684\u5355\u8bcd\u3002\n\n<!-- intro -->\n##### SQL:\n\n<!-- request SQL -->\n\nCODE_BLOCK_1\n\n<!-- request SQL with additional filters -->\n\u5e26\u6709\u989d\u5916\u8fc7\u6ee4\u5668\u7684\u66f4\u590d\u6742\u7684\u6a21\u7cca\u641c\u7d22\u67e5\u8be2\u793a\u4f8b\uff1a\n\nCODE_BLOCK_2\n\n<!-- request JSON -->\n\nCODE_BLOCK_3\n\n<!-- response SQL -->\n\nCODE_BLOCK_4\n\n<!-- request SQL with preserve option -->\n\nCODE_BLOCK_5\n\n<!-- request JSON with preserve option -->\n\nCODE_BLOCK_6\n\n<!-- response SQL with preserve option -->\n\nCODE_BLOCK_7\n\n<!-- end -->\n\n### JSON\n\nCODE_BLOCK_8\n\n\u6ce8\u610f\uff1a\u5982\u679c\u4f7f\u7528 [query_string](../Searching/Full_text_matching/Basic_usage.md#query_string)\uff0c\u8bf7\u6ce8\u610f\u5b83\u4e0d\u652f\u6301\u5168\u6587\u641c\u7d22\u8fd0\u7b97\u7b26\uff0c\u9664\u975e\u662f[\u77ed\u8bed\u641c\u7d22\u8fd0\u7b97\u7b26](../Searching/Full_text_matching/Operators.md#Phrase-search-operator)\u3002\u67e5\u8be2\u5b57\u7b26\u4e32\u5e94\u4ec5\u7531\u4f60\u60f3\u5339\u914d\u7684\u5355\u8bcd\u7ec4\u6210\u3002\n\n### \u9009\u9879\n\n- `fuzzy`\uff1a\u5f00\u542f\u6216\u5173\u95ed\u6a21\u7cca\u641c\u7d22\u3002\n- `distance`\uff1a\u8bbe\u7f6e\u5339\u914d\u7684Levenshtein\u8ddd\u79bb\uff0c\u9ed8\u8ba4\u662f `2`\u3002\n- `preserve`\uff1a`0` \u6216 `1`\uff08\u9ed8\u8ba4\uff1a`0`\uff09\u3002\u8bbe\u7f6e\u4e3a `1` \u65f6\uff0c\u4fdd\u7559\u6ca1\u6709\u6a21\u7cca\u5339\u914d\u7684\u5355\u8bcd\u51fa\u73b0\u5728\u641c\u7d22\u7ed3\u679c\u4e2d\uff08\u4f8b\u5982\uff0c\u201chello wrld\u201d\u540c\u65f6\u8fd4\u56de\u201chello wrld\u201d\u548c\u201chello world\u201d\uff09\u3002\u8bbe\u7f6e\u4e3a `0` \u65f6\uff0c\u4ec5\u8fd4\u56de\u6210\u529f\u6a21\u7cca\u5339\u914d\u7684\u5355\u8bcd\uff08\u4f8b\u5982\uff0c\u201chello wrld\u201d\u53ea\u8fd4\u56de\u201chello world\u201d\uff09\u3002\u8fd9\u5bf9\u4e8e\u4fdd\u7559\u53ef\u80fd\u4e0d\u5b58\u5728\u4e8e Manticore Search \u4e2d\u7684\u77ed\u8bcd\u6216\u4e13\u6709\u540d\u8bcd\u975e\u5e38\u6709\u7528\u3002\n- `layouts`\uff1a\u7528\u4e8e\u68c0\u6d4b\u56e0\u952e\u76d8\u5e03\u5c40\u4e0d\u5339\u914d\u5bfc\u81f4\u7684\u62fc\u5199\u9519\u8bef\u7684\u952e\u76d8\u5e03\u5c40\uff08\u4f8b\u5982\uff0c\u5728\u9519\u8bef\u5e03\u5c40\u4e0b\u6253\u51fa\u201cghbdtn\u201d\u4ee3\u66ff\u201c\u043f\u0440\u0438\u0432\u0435\u0442\u201d\uff09\u3002Manticore \u6bd4\u8f83\u4e0d\u540c\u5e03\u5c40\u4e2d\u5b57\u7b26\u7684\u4f4d\u7f6e\u4ee5\u63d0\u4f9b\u7ea0\u6b63\u5efa\u8bae\u3002\u9700\u8981\u81f3\u5c112\u4e2a\u5e03\u5c40\u4ee5\u6709\u6548\u68c0\u6d4b\u4e0d\u5339\u914d\u3002\u9ed8\u8ba4\u4e0d\u4f7f\u7528\u4efb\u4f55\u5e03\u5c40\u3002\u4f7f\u7528\u7a7a\u5b57\u7b26\u4e32 `''`\uff08SQL\uff09\u6216\u7a7a\u6570\u7ec4 `[]`\uff08JSON\uff09\u5173\u95ed\u6b64\u529f\u80fd\u3002\u652f\u6301\u7684\u5e03\u5c40\u5305\u62ec\uff1a\n - `be` - \u6bd4\u5229\u65f6AZERTY\u5e03\u5c40\n - `bg` - \u4fdd\u52a0\u5229\u4e9a\u6807\u51c6\u5e03\u5c40\n - `br` - \u5df4\u897fQWERTY\u5e03\u5c40\n - `ch` - \u745e\u58ebQWERTZ\u5e03\u5c40\n - `de` - \u5fb7\u56fdQWERTZ\u5e03\u5c40\n - `dk` - \u4e39\u9ea6QWERTY\u5e03\u5c40\n - `es` - \u897f\u73ed\u7259QWERTY\u5e03\u5c40\n - `fr` - \u6cd5\u56fdAZERTY\u5e03\u5c40\n - `uk` - \u82f1\u56fdQWERTY\u5e03\u5c40\n - `gr` - \u5e0c\u814aQWERTY\u5e03\u5c40\n - `it` - \u610f\u5927\u5229QWERTY\u5e03\u5c40\n - `no` - \u632a\u5a01QWERTY\u5e03\u5c40\n - `pt` - \u8461\u8404\u7259QWERTY\u5e03\u5c40\n - `ru` - \u4fc4\u7f57\u65afJCUKEN\u5e03\u5c40\n - `se` - \u745e\u5178QWERTY\u5e03\u5c40\n - `ua` - \u4e4c\u514b\u5170JCUKEN\u5e03\u5c40\n - `us` - \u7f8e\u56fdQWERTY\u5e03\u5c40\n\n\n### \u94fe\u63a5",
- "russian": "# \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0440\u0444\u043e\u0433\u0440\u0430\u0444\u0438\u0438\n\n\u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0440\u0444\u043e\u0433\u0440\u0430\u0444\u0438\u0438, \u0442\u0430\u043a\u0436\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0435 \u043a\u0430\u043a:\n\n* \u0410\u0432\u0442\u043e\u043a\u043e\u0440\u0440\u0435\u043a\u0446\u0438\u044f\n* \u041a\u043e\u0440\u0440\u0435\u043a\u0446\u0438\u044f \u0442\u0435\u043a\u0441\u0442\u0430\n* \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0440\u0444\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043e\u0448\u0438\u0431\u043e\u043a\n* \u0422\u043e\u043b\u0435\u0440\u0430\u043d\u0442\u043d\u043e\u0441\u0442\u044c \u043a \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0430\u043c\n* \u00ab\u0412\u044b \u0438\u043c\u0435\u043b\u0438 \u0432 \u0432\u0438\u0434\u0443?\u00bb\n\n\u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435, \u2014 \u044d\u0442\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u044b \u0438\u043b\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0439 \u0432\u0430\u043c\u0438 \u0442\u0435\u043a\u0441\u0442. \u041a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044f \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0430\u0431\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430 \u0432\u043e\u0441\u0445\u043e\u0434\u0438\u0442 \u043a 1960-\u043c \u0433\u043e\u0434\u0430\u043c, \u043a\u043e\u0433\u0434\u0430 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u044b\u0439 \u0443\u0447\u0451\u043d\u044b\u0439 \u0423\u043e\u0440\u0440\u0435\u043d \u0422\u0435\u0439\u0442\u0435\u043b\u044c\u043c\u0430\u043d, \u0442\u0430\u043a\u0436\u0435 \u0438\u0437\u043e\u0431\u0440\u0435\u0442\u0430\u0442\u0435\u043b\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u00ab\u043e\u0442\u043c\u0435\u043d\u0438\u0442\u044c\u00bb (undo), \u0432\u0432\u0451\u043b \u0444\u0438\u043b\u043e\u0441\u043e\u0444\u0438\u044e \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439 \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c D.W.I.M., \u0438\u043b\u0438 \u00ab\u0414\u0435\u043b\u0430\u0439, \u0447\u0442\u043e \u044f \u0438\u043c\u0435\u044e \u0432 \u0432\u0438\u0434\u0443\u00bb. \u0412\u043c\u0435\u0441\u0442\u043e \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u044b \u043d\u0430 \u043f\u0440\u0438\u0451\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u043e\u0442\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439, \u0422\u0435\u0439\u0442\u0435\u043b\u044c\u043c\u0430\u043d \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u043b, \u0447\u0442\u043e \u0438\u0445 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u0435 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u0445 \u043e\u0448\u0438\u0431\u043e\u043a.\n\n\u041f\u0435\u0440\u0432\u044b\u043c \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u043c \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u043c, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0432\u0448\u0438\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0440\u0444\u043e\u0433\u0440\u0430\u0444\u0438\u0438, \u0441\u0442\u0430\u043b Microsoft Word 6.0, \u0432\u044b\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0439 \u0432 1993 \u0433\u043e\u0434\u0443.\n\n### \u041a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\n\n\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0440\u0444\u043e\u0433\u0440\u0430\u0444\u0438\u0438, \u043d\u043e \u0432\u0430\u0436\u043d\u043e \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043d\u0435\u0442 \u0447\u0438\u0441\u0442\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0430\u0448\u0443 \u043e\u0448\u0438\u0431\u043e\u0447\u043d\u043e \u0432\u0432\u0435\u0434\u0451\u043d\u043d\u0443\u044e \u00abipone\u00bb \u0432 \u00abiphone\u00bb \u0441 \u043f\u0440\u0438\u0435\u043c\u043b\u0435\u043c\u044b\u043c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e\u043c. \u0412 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0431\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043e\u0441\u043d\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f. \u042d\u0442\u0430 \u0431\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c:\n\n* \u0421\u043b\u043e\u0432\u0430\u0440\u0451\u043c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u0441\u043b\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0439, \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c:\n * \u041e\u0441\u043d\u043e\u0432\u0430\u043d \u043d\u0430 \u0432\u0430\u0448\u0438\u0445 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u0418\u0434\u0435\u044f \u0437\u0434\u0435\u0441\u044c \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u043e\u0440\u0444\u043e\u0433\u0440\u0430\u0444\u0438\u044f \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u0435, \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u043c \u0438\u0437 \u0432\u0430\u0448\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0430\u044f, \u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0439\u0442\u0438 \u0441\u043b\u043e\u0432\u043e, \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0445\u043e\u0436\u0435\u0435 \u043d\u0430 \u0432\u0432\u0435\u0434\u0451\u043d\u043d\u043e\u0435 (\u043c\u044b \u0441\u043a\u043e\u0440\u043e \u043e\u0431\u0441\u0443\u0436\u0434\u0438\u043c, \u043a\u0430\u043a \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Manticore).\n * \u0418\u043b\u0438 \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u043e\u0441\u043d\u043e\u0432\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0432\u043d\u0435\u0448\u043d\u0435\u043c \u0441\u043b\u043e\u0432\u0430\u0440\u0435, \u043d\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u043c \u0441 \u0432\u0430\u0448\u0438\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0437\u0434\u0435\u0441\u044c \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432\u0430\u0448\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u043c\u043e\u0433\u0443\u0442 \u0441\u0438\u043b\u044c\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f: \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043b\u043e\u0432\u0430 \u043c\u043e\u0433\u0443\u0442 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u0435, \u0430 \u0434\u0440\u0443\u0433\u0438\u0435 \u2014 \u0432 \u0432\u0430\u0448\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.\n* \u041d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u043d\u0430 \u0441\u043b\u043e\u0432\u0430\u0440\u0435, \u043d\u043e \u0438 \u0441 \u0443\u0447\u0451\u0442\u043e\u043c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u00abwhite ber\u00bb \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e \u043d\u0430 \u00abwhite bear\u00bb, \u0430 \u00abdark ber\u00bb \u2014 \u043d\u0430 \u00abdark beer\u00bb. \u041a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u043c \u0441\u043b\u043e\u0432\u043e\u043c \u0432 \u0432\u0430\u0448\u0435\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u0435, \u043d\u043e \u0438 \u0432\u0430\u0448\u0438\u043c \u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c, \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u0441\u0443\u0442\u043e\u043a, \u0433\u0440\u0430\u043c\u043c\u0430\u0442\u0438\u043a\u043e\u0439 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f (\u0447\u0442\u043e\u0431\u044b \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u00abthere\u00bb \u043d\u0430 \u00abtheir\u00bb \u0438\u043b\u0438 \u043d\u0435\u0442), \u0438\u0441\u0442\u043e\u0440\u0438\u0435\u0439 \u043f\u043e\u0438\u0441\u043a\u0430 \u0438 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043b\u044e\u0431\u044b\u043c\u0438 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0444\u0430\u043a\u0442\u043e\u0440\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u0432\u043b\u0438\u044f\u0442\u044c \u043d\u0430 \u0432\u0430\u0448 \u0437\u0430\u043f\u0440\u043e\u0441.\n* \u0414\u0440\u0443\u0433\u043e\u0439 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0435 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0440\u0444\u043e\u0433\u0440\u0430\u0444\u0438\u0438. \u042d\u0442\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u0435 [\u0430\u0432\u0442\u043e\u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f](../Searching/Autocomplete.md), \u043d\u043e \u0438\u043c\u0435\u0435\u0442 \u0441\u043c\u044b\u0441\u043b \u0438 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043a\u043e\u0440\u0440\u0435\u043a\u0446\u0438\u0438. \u0421\u0443\u0442\u044c \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438, \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c, \u043f\u0438\u0448\u0443\u0442 \u0441\u043b\u043e\u0432\u0430 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043b\u043e\u0432\u0430 \u0438\u0437 \u0438\u0445 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u043f\u043e\u0438\u0441\u043a\u0430 \u043a\u0430\u043a \u044d\u0442\u0430\u043b\u043e\u043d, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u044d\u0442\u0438\u0445 \u0441\u043b\u043e\u0432 \u043d\u0435\u0442 \u0432 \u043d\u0430\u0448\u0438\u0445 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0445 \u0438\u043b\u0438 \u0432\u043e \u0432\u043d\u0435\u0448\u043d\u0435\u043c \u0441\u043b\u043e\u0432\u0430\u0440\u0435. \u041a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u043e\u0441\u0432\u0435\u0434\u043e\u043c\u043b\u0451\u043d\u043d\u043e\u0441\u0442\u044c \u0442\u0430\u043a\u0436\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0430 \u0437\u0434\u0435\u0441\u044c.\n\nManticore \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043d\u0435\u0447\u0435\u0442\u043a\u043e\u0433\u043e \u043f\u043e\u0438\u0441\u043a\u0430 (fuzzy search) \u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b `CALL QSUGGEST` \u0438 `CALL SUGGEST`, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043a\u043e\u0440\u0440\u0435\u043a\u0446\u0438\u0438 \u043e\u0440\u0444\u043e\u0433\u0440\u0430\u0444\u0438\u0438.\n\n## \u041d\u0435\u0447\u0435\u0442\u043a\u0438\u0439 \u043f\u043e\u0438\u0441\u043a\n\n\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043d\u0435\u0447\u0435\u0442\u043a\u043e\u0433\u043e \u043f\u043e\u0438\u0441\u043a\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0431\u043e\u043b\u0435\u0435 \u0433\u0438\u0431\u043a\u043e \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c, \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044f \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0432\u0430\u0440\u0438\u0430\u0446\u0438\u0438 \u0438\u043b\u0438 \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0438 \u0432 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u043e\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u0435. \u041e\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u043e\u0445\u043e\u0436\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043d\u0430 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 `SELECT` SQL-\u0437\u0430\u043f\u0440\u043e\u0441 \u0438\u043b\u0438 JSON-\u0437\u0430\u043f\u0440\u043e\u0441 `/search`, \u043d\u043e \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435\u043c \u043d\u0435\u0447\u0435\u0442\u043a\u043e\u0433\u043e \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f.\n\n> \u041f\u0420\u0418\u041c\u0415\u0427\u0410\u041d\u0418\u0415: \u041e\u043f\u0446\u0438\u044f `fuzzy` \u0442\u0440\u0435\u0431\u0443\u0435\u0442 [Manticore Buddy](../Installation/Manticore_Buddy.md). \u0415\u0441\u043b\u0438 \u043e\u043d\u0430 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u0443\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e Buddy \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d.\n\n> \u041f\u0420\u0418\u041c\u0415\u0427\u0410\u041d\u0418\u0415: \u041e\u043f\u0446\u0438\u044f `fuzzy` \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0434\u043b\u044f [\u043c\u0443\u043b\u044c\u0442\u0438-\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432](../Searching/Multi-queries.md).\n\n## \u041e\u0431\u0449\u0438\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\n\n### SQL\n\n<!-- example Fuzzy_Search_SQL -->\n\nCODE_BLOCK_0\n\n\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435: \u041f\u0440\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u043d\u0435\u0447\u0435\u0442\u043a\u043e\u0433\u043e \u043f\u043e\u0438\u0441\u043a\u0430 \u0447\u0435\u0440\u0435\u0437 SQL, \u0432 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0438 MATCH \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c\u0441\u044f \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u043f\u043e\u043b\u043d\u043e\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u0438\u0441\u043a\u0430, \u043a\u0440\u043e\u043c\u0435 [\u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u043f\u043e\u0438\u0441\u043a\u0430 \u0444\u0440\u0430\u0437\u044b](../Searching/Full_text_matching/Operators.md#Phrase-search-operator), \u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u043e\u0432\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c.\n\n<!-- intro -->\n##### SQL:\n\n<!-- request SQL -->\n\nCODE_BLOCK_1\n\n<!-- request SQL with additional filters -->\n\u041f\u0440\u0438\u043c\u0435\u0440 \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043d\u0435\u0447\u0435\u0442\u043a\u043e\u0433\u043e \u043f\u043e\u0438\u0441\u043a\u0430 \u0441 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u043c\u0438:\n\nCODE_BLOCK_2\n\n<!-- request JSON -->\n\nCODE_BLOCK_3\n\n<!-- response SQL -->\n\nCODE_BLOCK_4\n\n<!-- request SQL with preserve option -->\n\nCODE_BLOCK_5\n\n<!-- request JSON with preserve option -->\n\nCODE_BLOCK_6\n\n<!-- response SQL with preserve option -->\n\nCODE_BLOCK_7\n\n<!-- end -->\n\n### JSON\n\nCODE_BLOCK_8\n\n\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435: \u0415\u0441\u043b\u0438 \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 [query_string](../Searching/Full_text_matching/Basic_usage.md#query_string), \u0438\u043c\u0435\u0439\u0442\u0435 \u0432 \u0432\u0438\u0434\u0443, \u0447\u0442\u043e \u043e\u043d \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043f\u043e\u043b\u043d\u043e\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b, \u043a\u0440\u043e\u043c\u0435 [\u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u043f\u043e\u0438\u0441\u043a\u0430 \u0444\u0440\u0430\u0437\u044b](../Searching/Full_text_matching/Operators.md#Phrase-search-operator). \u0421\u0442\u0440\u043e\u043a\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0441\u043e\u0441\u0442\u043e\u044f\u0442\u044c \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0438\u0437 \u0441\u043b\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c.\n\n### \u041e\u043f\u0446\u0438\u0438\n\n- `fuzzy`: \u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0438\u043b\u0438 \u0432\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043d\u0435\u0447\u0435\u0442\u043a\u0438\u0439 \u043f\u043e\u0438\u0441\u043a.\n- `distance`: \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u041b\u0435\u0432\u0435\u043d\u0448\u0442\u0435\u0439\u043d\u0430 \u0434\u043b\u044f \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e `2`.\n- `preserve`: `0` \u0438\u043b\u0438 `1` (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e: `0`). \u041f\u0440\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0432 `1` \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0441\u043b\u043e\u0432\u0430, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435\u0442 \u043d\u0435\u0447\u0435\u0442\u043a\u0438\u0445 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0439 \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u0445 \u043f\u043e\u0438\u0441\u043a\u0430 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u00abhello wrld\u00bb \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0438 \u00abhello wrld\u00bb, \u0438 \u00abhello world\u00bb). \u041f\u0440\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0432 `0` \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u043e\u0432\u0430 \u0441 \u0443\u0441\u043f\u0435\u0448\u043d\u044b\u043c\u0438 \u043d\u0435\u0447\u0435\u0442\u043a\u0438\u043c\u0438 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u044f\u043c\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u00abhello wrld\u00bb \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u00abhello world\u00bb). \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0434\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0445 \u0441\u043b\u043e\u0432 \u0438\u043b\u0438 \u0438\u043c\u0451\u043d \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 Manticore Search.\n- `layouts`: \u0420\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0438 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b \u0434\u043b\u044f \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043e\u043a \u0432\u0432\u043e\u0434\u0430, \u0432\u044b\u0437\u0432\u0430\u043d\u043d\u044b\u0445 \u043d\u0435\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435\u043c \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0438 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u0438 \u043d\u0430\u0431\u043e\u0440\u0435 \u00abghbdtn\u00bb \u0432\u043c\u0435\u0441\u0442\u043e \u00ab\u043f\u0440\u0438\u0432\u0435\u0442\u00bb, \u0435\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0430 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0430\u044f \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430). Manticore \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430\u0445, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u0442\u044c \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f. \u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c 2 \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0438 \u0434\u043b\u044f \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0435\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0439. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0438 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043f\u0443\u0441\u0442\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 `''` (SQL) \u0438\u043b\u0438 \u043f\u0443\u0441\u0442\u043e\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 `[]` (JSON), \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u044d\u0442\u043e. \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0435 \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0438 \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0442:\n - `be` \u2014 \u0431\u0435\u043b\u044c\u0433\u0438\u0439\u0441\u043a\u0430\u044f \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430 AZERTY\n - `bg` \u2014 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u0431\u043e\u043b\u0433\u0430\u0440\u0441\u043a\u0430\u044f \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430\n - `br` \u2014 \u0431\u0440\u0430\u0437\u0438\u043b\u044c\u0441\u043a\u0430\u044f \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430 QWERTY\n - `ch` \u2014 \u0448\u0432\u0435\u0439\u0446\u0430\u0440\u0441\u043a\u0430\u044f \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430 QWERTZ\n - `de` \u2014 \u043d\u0435\u043c\u0435\u0446\u043a\u0430\u044f \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430 QWERTZ\n - `dk` \u2014 \u0434\u0430\u0442\u0441\u043a\u0430\u044f \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430 QWERTY\n - `es` \u2014 \u0438\u0441\u043f\u0430\u043d\u0441\u043a\u0430\u044f \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430 QWERTY\n - `fr` \u2014 \u0444\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0430\u044f \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430 AZERTY\n - `uk` \u2014 \u0431\u0440\u0438\u0442\u0430\u043d\u0441\u043a\u0430\u044f \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430 QWERTY\n - `gr` \u2014 \u0433\u0440\u0435\u0447\u0435\u0441\u043a\u0430\u044f \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430 QWERTY\n - `it` \u2014 \u0438\u0442\u0430\u043b\u044c\u044f\u043d\u0441\u043a\u0430\u044f \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430 QWERTY\n - `no` \u2014 \u043d\u043e\u0440\u0432\u0435\u0436\u0441\u043a\u0430\u044f \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430 QWERTY\n - `pt` \u2014 \u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u044c\u0441\u043a\u0430\u044f \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430 QWERTY\n - `ru` \u2014 \u0440\u0443\u0441\u0441\u043a\u0430\u044f \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430 \u0419\u0426\u0423\u041a\u0415\u041d\n - `se` \u2014 \u0448\u0432\u0435\u0434\u0441\u043a\u0430\u044f \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430 QWERTY\n - `ua` \u2014 \u0443\u043a\u0440\u0430\u0438\u043d\u0441\u043a\u0430\u044f \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430 \u0419\u0426\u0423\u041a\u0415\u041d\n - `us` \u2014 \u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430\u044f \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430 QWERTY\n\n\n### \u0421\u0441\u044b\u043b\u043a\u0438"
- },
- "is_code_or_comment": false,
- "model": "openai:gpt-4.1-mini",
- "updated_at": 1766339816
- },
- "01e426a1bf0919c6fe0a70377475c2ebc96b415efd5992540761124e24b79187": {
- "original": "* <a href=\"https://github.manticoresearch.com/manticoresoftware/manticoresearch?query=fature&filters%5Bcomment%5D%5B%5D=28798446&filters%5Bcommon%5D%5Brepo_id%5D%5B%5D=95614931&sort=&search=keyword-search-fuzzy-layouts\">This demo</a> demonstrates the fuzzy search functionality:\n {.scale-0.7}\n* Blog post about Fuzzy Search and Autocomplete - https://manticoresearch.com/blog/new-fuzzy-search-and-autocomplete/\n\n## CALL QSUGGEST, CALL SUGGEST\n\nBoth commands are accessible via SQL and support querying both local (plain and real-time) and distributed tables. The syntax is as follows:\nCODE_BLOCK_9\n\nThese commands provide all suggestions from the dictionary for a given word. They work only on tables with [infixing](../Creating_a_table/NLP_and_tokenization/Wildcard_searching_settings.md#min_infix_len) enabled and [dict=keywords](../Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#dict). They return the suggested keywords, Levenshtein distance between the suggested and original keywords, and the document statistics of the suggested keyword.\n\nIf the first parameter contains multiple words, then:\n* `CALL QSUGGEST` will return suggestions only for the **last** word, ignoring the rest.\n* `CALL SUGGEST` will return suggestions only for the **first** word.\n\nThat's the only difference between them. Several options are supported for customization:\n\n| Option | Description | Default |\n| - | - | - |\n| limit | Returns N top matches | 5 |\n| max_edits | Keeps only dictionary words with a Levenshtein distance less than or equal to N | 4 |\n| result_stats | Provides Levenshtein distance and document count of the found words | 1 (enabled) |\n| delta_len | Keeps only dictionary words with a length difference less than N | 3 |\n| max_matches | Number of matches to keep | 25 |\n| reject | Rejected words are matches that are not better than those already in the match queue. They are put in a rejected queue that gets reset in case one actually can go in the match queue. This parameter defines the size of the rejected queue (as reject*max(max_matched,limit)). If the rejected queue is filled, the engine stops looking for potential matches | 4 |\n| result_line | alternate mode to display the data by returning all suggests, distances and docs each per one row | 0 |\n| non_char | do not skip dictionary words with non alphabet symbols | 0 (skip such words) |\n| sentence | Returns the original sentence along with the last word replaced by the matched one. | 0 (do not return the full sentence) |\n| force_bigrams | Forces the use of bigrams (2-character n-grams) instead of trigrams for all word lengths, which can improve matching for words with transposition errors | 0 (use trigrams for words \u22656 characters) |\n\nTo show how it works, let's create a table and add a few documents to it.\n\nCODE_BLOCK_10\n<!-- example single -->\n##### Single word example\nAs you can see, the mistyped word \"crossb**U**dy\" gets corrected to \"crossbody\". By default, `CALL SUGGEST/QSUGGEST` return:\n\n* `distance` - the Levenshtein distance which means how many edits they had to make to convert the given word to the suggestion\n* `docs` - number of documents containing the suggested word\n\nTo disable the display of these statistics, you can use the option `0 as result_stats`.\n\n<!-- intro -->\n##### Example:\n\n<!-- request Example -->\n\nCODE_BLOCK_11\n<!-- response Example -->\n\nCODE_BLOCK_12\n<!-- end -->\n<!-- example first -->\n##### CALL SUGGEST takes only the first word\nIf the first parameter is not a single word, but multiple, then `CALL SUGGEST` will return suggestions only for the first word.\n\n<!-- intro -->\n##### Example:\n\n<!-- request Example -->\n\nCODE_BLOCK_13\n<!-- response Example -->\n\nCODE_BLOCK_14\n<!-- end -->\n<!-- example last -->\n##### CALL QSUGGEST takes only the last word\nIf the first parameter is not a single word, but multiple, then `CALL SUGGEST` will return suggestions only for the last word.\n\n<!-- intro -->\n##### Example:\n\n<!-- request Example -->\n\nCODE_BLOCK_15\n<!-- response Example -->\n\nCODE_BLOCK_16\n<!-- end -->\n\n<!-- example last2 -->\n\nAdding `1 as sentence` makes `CALL QSUGGEST` return the entire sentence with the last word corrected.\n\n<!-- request Example -->\nCODE_BLOCK_17\n<!-- response Example -->\nCODE_BLOCK_18\n<!-- end -->\n\n##### Different display mode\nThe `1 as result_line` option changes the way the suggestions are displayed in the output. Instead of showing each suggestion in a separate row, it displays all suggestions, distances, and docs in a single row. Here's an example to demonstrate this:\n\n<!-- intro -->\n##### Example:\n\n<!-- request Example -->\n\nCODE_BLOCK_19\n<!-- response Example -->\n\nCODE_BLOCK_20\n<!-- end -->\n\n##### Using force_bigrams for better transposition handling\nThe `force_bigrams` option can help with words that have transposition errors, such as \"ipohne\" vs \"iphone\". By using bigrams instead of trigrams, the algorithm can better handle character transpositions.\n\n<!-- intro -->\n##### Example:\n\n<!-- request Example -->\n\nCODE_BLOCK_21\n<!-- response Example -->\n\nCODE_BLOCK_22\n<!-- end -->\n\n### Demo\n\n* [This interactive course](https://play.manticoresearch.com/didyoumean/) shows how `CALL SUGGEST` works in a little web app.\n\n{.scale-0.5}\n\n<!-- proofread -->\n\n",
- "translations": {
- "chinese": "* <a href=\"https://github.manticoresearch.com/manticoresoftware/manticoresearch?query=fature&filters%5Bcomment%5D%5B%5D=28798446&filters%5Bcommon%5D%5Brepo_id%5D%5B%5D=95614931&sort=&search=keyword-search-fuzzy-layouts\">\u6b64\u6f14\u793a</a>\u5c55\u793a\u4e86\u6a21\u7cca\u641c\u7d22\u529f\u80fd\uff1a\n {.scale-0.7}\n* \u5173\u4e8e\u6a21\u7cca\u641c\u7d22\u548c\u81ea\u52a8\u8865\u5168\u7684\u535a\u5ba2\u6587\u7ae0 - <https://manticoresearch.com/blog/new-fuzzy-search-and-autocomplete/>\n\n## \u8c03\u7528 QSUGGEST\uff0c\u8c03\u7528 SUGGEST\n\n\u8fd9\u4e24\u4e2a\u547d\u4ee4\u53ef\u4ee5\u901a\u8fc7 SQL \u8bbf\u95ee\uff0c\u5e76\u652f\u6301\u67e5\u8be2\u672c\u5730\uff08\u666e\u901a\u548c\u5b9e\u65f6\uff09\u548c\u5206\u5e03\u5f0f\u8868\u3002\u8bed\u6cd5\u5982\u4e0b\uff1a\nCODE_BLOCK_9\n\n\u8fd9\u4e9b\u547d\u4ee4\u4e3a\u7ed9\u5b9a\u5355\u8bcd\u63d0\u4f9b\u5b57\u5178\u4e2d\u7684\u6240\u6709\u5efa\u8bae\u3002\u5b83\u4eec\u4ec5\u5728\u542f\u7528\u4e86 [\u524d\u7f00\u5339\u914d](../Creating_a_table/NLP_and_tokenization/Wildcard_searching_settings.md#min_infix_len) \u548c [dict=keywords](../Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#dict) \u7684\u8868\u4e0a\u5de5\u4f5c\u3002\u5b83\u4eec\u8fd4\u56de\u5efa\u8bae\u7684\u5173\u952e\u8bcd\u3001\u5efa\u8bae\u5173\u952e\u8bcd\u4e0e\u539f\u59cb\u5173\u952e\u8bcd\u4e4b\u95f4\u7684\u83b1\u6587\u65af\u5766\u8ddd\u79bb\u4ee5\u53ca\u5efa\u8bae\u5173\u952e\u8bcd\u7684\u6587\u6863\u7edf\u8ba1\u4fe1\u606f\u3002\n\n\u5982\u679c\u7b2c\u4e00\u4e2a\u53c2\u6570\u5305\u542b\u591a\u4e2a\u5355\u8bcd\uff0c\u5219\uff1a\n* `CALL QSUGGEST` \u5c06\u4ec5\u8fd4\u56de\u6700\u540e\u4e00\u4e2a\u5355\u8bcd\u7684\u5efa\u8bae\uff0c\u5ffd\u7565\u5176\u4f59\u5355\u8bcd\u3002\n* `CALL SUGGEST` \u5c06\u4ec5\u8fd4\u56de\u7b2c\u4e00\u4e2a\u5355\u8bcd\u7684\u5efa\u8bae\u3002\n\n\u8fd9\u5c31\u662f\u5b83\u4eec\u4e4b\u95f4\u7684\u552f\u4e00\u533a\u522b\u3002\u652f\u6301\u4ee5\u4e0b\u51e0\u79cd\u81ea\u5b9a\u4e49\u9009\u9879\uff1a\n\n| \u9009\u9879 | \u63cf\u8ff0 | \u9ed8\u8ba4\u503c |\n| - | - | - |\n| limit | \u8fd4\u56de\u524d N \u4e2a\u5339\u914d\u9879 | 5 |\n| max_edits | \u4ec5\u4fdd\u7559\u83b1\u6587\u65af\u5766\u8ddd\u79bb\u5c0f\u4e8e\u6216\u7b49\u4e8e N \u7684\u5b57\u5178\u8bcd | 4 |\n| result_stats | \u63d0\u4f9b\u627e\u5230\u7684\u8bcd\u7684\u83b1\u6587\u65af\u5766\u8ddd\u79bb\u548c\u6587\u6863\u8ba1\u6570 | 1\uff08\u542f\u7528\uff09 |\n| delta_len | \u4ec5\u4fdd\u7559\u957f\u5ea6\u5dee\u5f02\u5c0f\u4e8e N \u7684\u5b57\u5178\u8bcd | 3 |\n| max_matches | \u4fdd\u7559\u7684\u5339\u914d\u9879\u6570\u91cf | 25 |\n| reject | \u88ab\u62d2\u7edd\u7684\u8bcd\u662f\u90a3\u4e9b\u4e0d\u5982\u5339\u914d\u961f\u5217\u4e2d\u5df2\u6709\u7684\u8bcd\u597d\u7684\u8bcd\u3002\u5b83\u4eec\u88ab\u653e\u5165\u4e00\u4e2a\u88ab\u62d2\u7edd\u7684\u961f\u5217\u4e2d\uff0c\u5982\u679c\u4e00\u4e2a\u8bcd\u5b9e\u9645\u4e0a\u53ef\u4ee5\u8fdb\u5165\u5339\u914d\u961f\u5217\uff0c\u5219\u8be5\u961f\u5217\u4f1a\u88ab\u91cd\u7f6e\u3002\u6b64\u53c2\u6570\u5b9a\u4e49\u4e86\u88ab\u62d2\u7edd\u961f\u5217\u7684\u5927\u5c0f\uff08\u5373 reject*max(max_matched,limit)\uff09\u3002\u5982\u679c\u88ab\u62d2\u7edd\u961f\u5217\u5df2\u6ee1\uff0c\u5219\u5f15\u64ce\u505c\u6b62\u5bfb\u627e\u6f5c\u5728\u5339\u914d\u9879 | 4 |\n| result_line | \u901a\u8fc7\u8fd4\u56de\u6240\u6709\u5efa\u8bae\u3001\u8ddd\u79bb\u548c\u6587\u6863\u6bcf\u884c\u4e00\u4e2a\u6765\u663e\u793a\u6570\u636e\u7684\u66ff\u4ee3\u6a21\u5f0f | 0 |\n| non_char | \u4e0d\u8df3\u8fc7\u5305\u542b\u975e\u5b57\u6bcd\u7b26\u53f7\u7684\u5b57\u5178\u8bcd | 0\uff08\u8df3\u8fc7\u6b64\u7c7b\u8bcd\uff09 |\n| sentence | \u8fd4\u56de\u539f\u59cb\u53e5\u5b50\u4ee5\u53ca\u6700\u540e\u4e00\u4e2a\u8bcd\u88ab\u5339\u914d\u8bcd\u66ff\u6362\u540e\u7684\u53e5\u5b50\u3002 | 0\uff08\u4e0d\u8fd4\u56de\u5b8c\u6574\u53e5\u5b50\uff09 |\n| force_bigrams | \u5f3a\u5236\u4f7f\u7528\u5927\u8bcd\u7ec4\uff082 \u5b57\u7b26 n-gram\uff09\u800c\u4e0d\u662f\u4e09\u5143\u7ec4\uff0c\u8fd9\u53ef\u4ee5\u63d0\u9ad8\u5bf9\u4e8e\u5b57\u7b26\u79fb\u4f4d\u9519\u8bef\u7684\u8bcd\u7684\u5339\u914d\u6548\u679c | 0\uff08\u5bf9\u4e8e\u957f\u5ea6\u22656 \u7684\u8bcd\u4f7f\u7528\u4e09\u5143\u7ec4\uff09 |\n\n\u4e3a\u4e86\u5c55\u793a\u5982\u4f55\u4f7f\u7528\u8fd9\u4e9b\u547d\u4ee4\uff0c\u8ba9\u6211\u4eec\u521b\u5efa\u4e00\u4e2a\u8868\u5e76\u4e3a\u5176\u6dfb\u52a0\u4e00\u4e9b\u6587\u6863\u3002\n\nCODE_BLOCK_10\n<!-- \u793a\u4f8b\u5355\u4e2a -->\n##### \u5355\u8bcd\u793a\u4f8b\n\u5982\u60a8\u6240\u89c1\uff0c\u62fc\u5199\u9519\u8bef\u7684\u5355\u8bcd \"crossb**U**dy\" \u88ab\u7ea0\u6b63\u4e3a \"crossbody\"\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c`CALL SUGGEST/QSUGGEST` \u8fd4\u56de\uff1a\n\n* `distance` - \u83b1\u6587\u65af\u5766\u8ddd\u79bb\uff0c\u8868\u793a\u5c06\u7ed9\u5b9a\u5355\u8bcd\u8f6c\u6362\u4e3a\u5efa\u8bae\u8bcd\u9700\u8981\u8fdb\u884c\u591a\u5c11\u6b21\u7f16\u8f91\n* `docs` - \u5305\u542b\u5efa\u8bae\u8bcd\u7684\u6587\u6863\u6570\u91cf\n\n\u8981\u7981\u7528\u8fd9\u4e9b\u7edf\u8ba1\u4fe1\u606f\u7684\u663e\u793a\uff0c\u53ef\u4ee5\u4f7f\u7528 `0 as result_stats` \u9009\u9879\u3002\n\n<!-- \u4ecb\u7ecd -->\n##### \u793a\u4f8b\uff1a\n\n<!-- \u8bf7\u6c42\u793a\u4f8b -->\n\nCODE_BLOCK_11\n<!-- \u54cd\u5e94\u793a\u4f8b -->\n\nCODE_BLOCK_12\n<!-- \u7ed3\u675f -->\n<!-- \u793a\u4f8b\u9996 -->\n##### CALL SUGGEST \u53ea\u5904\u7406\u7b2c\u4e00\u4e2a\u5355\u8bcd\n\u5982\u679c\u7b2c\u4e00\u4e2a\u53c2\u6570\u4e0d\u662f\u4e00\u4e2a\u5355\u4e2a\u5355\u8bcd\uff0c\u800c\u662f\u591a\u4e2a\u5355\u8bcd\uff0c\u5219 `CALL SUGGEST` \u5c06\u4ec5\u8fd4\u56de\u7b2c\u4e00\u4e2a\u5355\u8bcd\u7684\u5efa\u8bae\u3002\n\n<!-- \u4ecb\u7ecd -->\n##### \u793a\u4f8b\uff1a\n\n<!-- \u8bf7\u6c42\u793a\u4f8b -->\n\nCODE_BLOCK_13\n<!-- \u54cd\u5e94\u793a\u4f8b -->\n\nCODE_BLOCK_14\n<!-- \u7ed3\u675f -->\n<!-- \u793a\u4f8b\u5c3e -->\n##### CALL QSUGGEST \u53ea\u5904\u7406\u6700\u540e\u4e00\u4e2a\u5355\u8bcd\n\u5982\u679c\u7b2c\u4e00\u4e2a\u53c2\u6570\u4e0d\u662f\u4e00\u4e2a\u5355\u4e2a\u5355\u8bcd\uff0c\u800c\u662f\u591a\u4e2a\u5355\u8bcd\uff0c\u5219 `CALL SUGGEST` \u5c06\u4ec5\u8fd4\u56de\u6700\u540e\u4e00\u4e2a\u5355\u8bcd\u7684\u5efa\u8bae\u3002\n\n<!-- \u4ecb\u7ecd -->\n##### \u793a\u4f8b\uff1a\n\n<!-- \u8bf7\u6c42\u793a\u4f8b -->\n\nCODE_BLOCK_15\n<!-- \u54cd\u5e94\u793a\u4f8b -->\n\nCODE_BLOCK_16\n<!-- \u7ed3\u675f -->\n\n<!-- \u793a\u4f8b\u5c3e2 -->\n\n\u6dfb\u52a0 `1 as sentence` \u4f7f `CALL QSUGGEST` \u8fd4\u56de\u6574\u4e2a\u53e5\u5b50\uff0c\u6700\u540e\u4e00\u4e2a\u8bcd\u88ab\u7ea0\u6b63\u3002\n\n<!-- \u8bf7\u6c42\u793a\u4f8b -->\nCODE_BLOCK_17\n<!-- \u54cd\u5e94\u793a\u4f8b -->\nCODE_BLOCK_18\n<!-- \u7ed3\u675f -->\n\n##### \u4e0d\u540c\u7684\u663e\u793a\u6a21\u5f0f\n`1 as result_line` \u9009\u9879\u6539\u53d8\u4e86\u8f93\u51fa\u4e2d\u5efa\u8bae\u7684\u663e\u793a\u65b9\u5f0f\u3002\u4e0d\u518d\u6bcf\u884c\u663e\u793a\u4e00\u4e2a\u5efa\u8bae\uff0c\u800c\u662f\u5c06\u6240\u6709\u5efa\u8bae\u3001\u8ddd\u79bb\u548c\u6587\u6863\u4fe1\u606f\u663e\u793a\u5728\u4e00\u884c\u4e2d\u3002\u8fd9\u91cc\u6709\u4e00\u4e2a\u793a\u4f8b\u6765\u6f14\u793a\u8fd9\u4e00\u70b9\uff1a\n\n<!-- \u4ecb\u7ecd -->\n##### \u793a\u4f8b\uff1a\n\n<!-- \u8bf7\u6c42\u793a\u4f8b -->\n\nCODE_BLOCK_19\n<!-- \u54cd\u5e94\u793a\u4f8b -->\n\nCODE_BLOCK_20\n<!-- \u7ed3\u675f -->\n\n##### \u4f7f\u7528 force_bigrams \u4ee5\u66f4\u597d\u5730\u5904\u7406\u5b57\u7b26\u79fb\u4f4d\n`force_bigrams` \u9009\u9879\u53ef\u4ee5\u5e2e\u52a9\u5904\u7406\u5177\u6709\u5b57\u7b26\u79fb\u4f4d\u9519\u8bef\u7684\u8bcd\uff0c\u4f8b\u5982 \"ipohne\" \u4e0e \"iphone\"\u3002\u901a\u8fc7\u4f7f\u7528\u5927\u8bcd\u7ec4\u800c\u4e0d\u662f\u4e09\u5143\u7ec4\uff0c\u7b97\u6cd5\u53ef\u4ee5\u66f4\u597d\u5730\u5904\u7406\u5b57\u7b26\u79fb\u4f4d\u3002\n\n<!-- \u4ecb\u7ecd -->\n##### \u793a\u4f8b\uff1a\n\n<!-- \u8bf7\u6c42\u793a\u4f8b -->\n\nCODE_BLOCK_21\n<!-- \u54cd\u5e94\u793a\u4f8b -->\n\nCODE_BLOCK_22\n<!-- \u7ed3\u675f -->\n\n### \u6f14\u793a\n\n* [\u6b64\u4e92\u52a8\u8bfe\u7a0b](https://play.manticoresearch.com/didyoumean/)\u5c55\u793a\u4e86 `CALL SUGGEST` \u5728\u4e00\u4e2a\u5c0f\u578b\u7f51\u7edc\u5e94\u7528\u4e2d\u7684\u5de5\u4f5c\u65b9\u5f0f\u3002\n\n{.scale-0.5}\n\n<!-- \u6821\u5bf9 -->",
- "russian": "* <a href=\"https://github.manticoresearch.com/manticoresoftware/manticoresearch?query=fature&filters%5Bcomment%5D%5B%5D=28798446&filters%5Bcommon%5D%5Brepo_id%5D%5B%5D=95614931&sort=&search=keyword-search-fuzzy-layouts\">\u042d\u0442\u043e \u0434\u0435\u043c\u043e</a> \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043d\u0435\u0447\u0435\u0442\u043a\u043e\u0433\u043e \u043f\u043e\u0438\u0441\u043a\u0430:\n {.scale-0.7}\n* \u0421\u0442\u0430\u0442\u044c\u044f \u0432 \u0431\u043b\u043e\u0433\u0435 \u043e \u041d\u0435\u0447\u0435\u0442\u043a\u043e\u043c \u043f\u043e\u0438\u0441\u043a\u0435 \u0438 \u0430\u0432\u0442\u043e\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 - https://manticoresearch.com/blog/new-fuzzy-search-and-autocomplete/\n\n## CALL QSUGGEST, CALL SUGGEST\n\n\u041e\u0431\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0447\u0435\u0440\u0435\u0437 SQL \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043a\u0430\u043a \u043a \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u043c (\u043e\u0431\u044b\u0447\u043d\u044b\u043c \u0438 real-time), \u0442\u0430\u043a \u0438 \u043a \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u043c. \u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439:\nCODE_BLOCK_9\n\n\u042d\u0442\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0432\u0441\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438\u0437 \u0441\u043b\u043e\u0432\u0430\u0440\u044f \u0434\u043b\u044f \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430. \u041e\u043d\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u043c\u0438, \u0443 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043e [\u0438\u043d\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435](../Creating_a_table/NLP_and_tokenization/Wildcard_searching_settings.md#min_infix_len) \u0438 [dict=keywords](../Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#dict). \u041e\u043d\u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0442 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c\u044b\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0441\u043b\u043e\u0432\u0430, \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u041b\u0435\u0432\u0435\u043d\u0448\u0442\u0435\u0439\u043d\u0430 \u043c\u0435\u0436\u0434\u0443 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u043c \u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c \u0441\u043b\u043e\u0432\u043e\u043c, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043f\u043e \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u043c\u0443 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u043c\u0443 \u0441\u043b\u043e\u0432\u0443.\n\n\u0415\u0441\u043b\u0438 \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u043e\u0432, \u0442\u043e:\n* `CALL QSUGGEST` \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f **\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e** \u0441\u043b\u043e\u0432\u0430, \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u044f \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435.\n* `CALL SUGGEST` \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f **\u043f\u0435\u0440\u0432\u043e\u0433\u043e** \u0441\u043b\u043e\u0432\u0430.\n\n\u042d\u0442\u043e \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438. \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u043f\u0446\u0438\u0439 \u0434\u043b\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438:\n\n| \u041e\u043f\u0446\u0438\u044f | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 | \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e |\n| - | - | - |\n| limit | \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 N \u043b\u0443\u0447\u0448\u0438\u0445 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0439 | 5 |\n| max_edits | \u041e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u043e\u0432\u0430 \u0438\u0437 \u0441\u043b\u043e\u0432\u0430\u0440\u044f \u0441 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u043c \u041b\u0435\u0432\u0435\u043d\u0448\u0442\u0435\u0439\u043d\u0430 \u043c\u0435\u043d\u044c\u0448\u0435 \u0438\u043b\u0438 \u0440\u0430\u0432\u043d\u044b\u043c N | 4 |\n| result_stats | \u041f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u041b\u0435\u0432\u0435\u043d\u0448\u0442\u0435\u0439\u043d\u0430 \u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0445 \u0441\u043b\u043e\u0432 | 1 (\u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043e) |\n| delta_len | \u041e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u043e\u0432\u0430 \u0438\u0437 \u0441\u043b\u043e\u0432\u0430\u0440\u044f \u0441 \u0440\u0430\u0437\u043d\u0438\u0446\u0435\u0439 \u0432 \u0434\u043b\u0438\u043d\u0435 \u043c\u0435\u043d\u044c\u0448\u0435 N | 3 |\n| max_matches | \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0439 \u0434\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f | 25 |\n| reject | \u041e\u0442\u0432\u0435\u0440\u0433\u043d\u0443\u0442\u044b\u0435 \u0441\u043b\u043e\u0432\u0430 \u2014 \u044d\u0442\u043e \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u043b\u0443\u0447\u0448\u0435 \u0442\u0435\u0445, \u0447\u0442\u043e \u0443\u0436\u0435 \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0439. \u041e\u043d\u0438 \u043f\u043e\u043c\u0435\u0449\u0430\u044e\u0442\u0441\u044f \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043e\u0442\u0432\u0435\u0440\u0433\u043d\u0443\u0442\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0435\u0441\u043b\u0438 \u043e\u0434\u043d\u043e \u0438\u0437 \u043d\u0438\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043f\u0430\u0441\u0442\u044c \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0439. \u042d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u043e\u0442\u0432\u0435\u0440\u0433\u043d\u0443\u0442\u044b\u0445 (\u043a\u0430\u043a reject*max(max_matched,limit)). \u0415\u0441\u043b\u0438 \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043e\u0442\u0432\u0435\u0440\u0433\u043d\u0443\u0442\u044b\u0445 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0430, \u0434\u0432\u0438\u0436\u043e\u043a \u043f\u0440\u0435\u043a\u0440\u0430\u0449\u0430\u0435\u0442 \u043f\u043e\u0438\u0441\u043a \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0439 | 4 |\n| result_line | \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0438\u0439 \u0432\u0441\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043a\u0430\u0436\u0434\u043e\u0435 \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 | 0 |\n| non_char | \u043d\u0435 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0441\u043b\u043e\u0432\u0430 \u0438\u0437 \u0441\u043b\u043e\u0432\u0430\u0440\u044f \u0441 \u043d\u0435\u0430\u043b\u0444\u0430\u0432\u0438\u0442\u043d\u044b\u043c\u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c\u0438 | 0 (\u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u0441\u043b\u043e\u0432\u0430) |\n| sentence | \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c \u0441\u043b\u043e\u0432\u043e\u043c, \u0437\u0430\u043c\u0435\u043d\u0435\u043d\u043d\u044b\u043c \u043d\u0430 \u0441\u043e\u0432\u043f\u0430\u0432\u0448\u0435\u0435. | 0 (\u043d\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435) |\n| force_bigrams | \u041f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0431\u0438\u0433\u0440\u0430\u043c\u043c\u044b (n-\u0433\u0440\u0430\u043c\u043c\u044b \u0438\u0437 2 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432) \u0432\u043c\u0435\u0441\u0442\u043e \u0442\u0440\u0438\u0433\u0440\u0430\u043c\u043c \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0434\u043b\u0438\u043d \u0441\u043b\u043e\u0432, \u0447\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0441\u043b\u043e\u0432 \u0441 \u043e\u0448\u0438\u0431\u043a\u0430\u043c\u0438 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0437\u0438\u0446\u0438\u0438 | 0 (\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0440\u0438\u0433\u0440\u0430\u043c\u043c\u044b \u0434\u043b\u044f \u0441\u043b\u043e\u0432 \u0434\u043b\u0438\u043d\u043e\u0439 \u22656 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432) |\n\n\u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c, \u043a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0432 \u043d\u0435\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432.\n\nCODE_BLOCK_10\n<!-- example single -->\n##### \u041f\u0440\u0438\u043c\u0435\u0440 \u0441 \u043e\u0434\u043d\u0438\u043c \u0441\u043b\u043e\u0432\u043e\u043c\n\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435, \u043e\u043f\u0435\u0447\u0430\u0442\u0430\u043d\u043d\u043e\u0435 \u0441\u043b\u043e\u0432\u043e \"crossb**U**dy\" \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \"crossbody\". \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e `CALL SUGGEST/QSUGGEST` \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0442:\n\n* `distance` \u2014 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u041b\u0435\u0432\u0435\u043d\u0448\u0442\u0435\u0439\u043d\u0430, \u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0449\u0435\u0435, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0430\u0432\u043e\u043a \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0435 \u0441\u043b\u043e\u0432\u043e \u0432 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0435\n* `docs` \u2014 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0445 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0435 \u0441\u043b\u043e\u0432\u043e\n\n\u0427\u0442\u043e\u0431\u044b \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438, \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u043f\u0446\u0438\u044e `0 as result_stats`.\n\n<!-- intro -->\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n<!-- request Example -->\n\nCODE_BLOCK_11\n<!-- response Example -->\n\nCODE_BLOCK_12\n<!-- end -->\n<!-- example first -->\n##### CALL SUGGEST \u0431\u0435\u0440\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0435\u0440\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e\n\u0415\u0441\u043b\u0438 \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u2014 \u043d\u0435 \u043e\u0434\u043d\u043e \u0441\u043b\u043e\u0432\u043e, \u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e, \u0442\u043e `CALL SUGGEST` \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430.\n\n<!-- intro -->\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n<!-- request Example -->\n\nCODE_BLOCK_13\n<!-- response Example -->\n\nCODE_BLOCK_14\n<!-- end -->\n<!-- example last -->\n##### CALL QSUGGEST \u0431\u0435\u0440\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0441\u043b\u043e\u0432\u043e\n\u0415\u0441\u043b\u0438 \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u2014 \u043d\u0435 \u043e\u0434\u043d\u043e \u0441\u043b\u043e\u0432\u043e, \u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e, \u0442\u043e `CALL SUGGEST` \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0441\u043b\u043e\u0432\u0430.\n\n<!-- intro -->\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n<!-- request Example -->\n\nCODE_BLOCK_15\n<!-- response Example -->\n\nCODE_BLOCK_16\n<!-- end -->\n\n<!-- example last2 -->\n\n\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 `1 as sentence` \u0437\u0430\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 `CALL QSUGGEST` \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u0432\u0441\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c \u0441\u043b\u043e\u0432\u043e\u043c.\n\n<!-- request Example -->\nCODE_BLOCK_17\n<!-- response Example -->\nCODE_BLOCK_18\n<!-- end -->\n\n##### \u0414\u0440\u0443\u0433\u043e\u0439 \u0440\u0435\u0436\u0438\u043c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\n\u041e\u043f\u0446\u0438\u044f `1 as result_line` \u043c\u0435\u043d\u044f\u0435\u0442 \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0432 \u0432\u044b\u0432\u043e\u0434\u0435. \u0412\u043c\u0435\u0441\u0442\u043e \u043f\u043e\u043a\u0430\u0437\u0430 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435, \u043e\u043d\u0430 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u0432\u0441\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435. \u0412\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u044d\u0442\u043e:\n\n<!-- intro -->\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n<!-- request Example -->\n\nCODE_BLOCK_19\n<!-- response Example -->\n\nCODE_BLOCK_20\n<!-- end -->\n\n##### \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 force_bigrams \u0434\u043b\u044f \u043b\u0443\u0447\u0448\u0435\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0437\u0438\u0446\u0438\u0439\n\u041e\u043f\u0446\u0438\u044f `force_bigrams` \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043c\u043e\u0447\u044c \u0441\u043e \u0441\u043b\u043e\u0432\u0430\u043c\u0438, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u043c\u0438 \u043e\u0448\u0438\u0431\u043a\u0438 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0437\u0438\u0446\u0438\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \"ipohne\" \u0432\u043c\u0435\u0441\u0442\u043e \"iphone\". \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0431\u0438\u0433\u0440\u0430\u043c\u043c\u044b \u0432\u043c\u0435\u0441\u0442\u043e \u0442\u0440\u0438\u0433\u0440\u0430\u043c\u043c, \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043c\u043e\u0436\u0435\u0442 \u043b\u0443\u0447\u0448\u0435 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432.\n\n<!-- intro -->\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n<!-- request Example -->\n\nCODE_BLOCK_21\n<!-- response Example -->\n\nCODE_BLOCK_22\n<!-- end -->\n\n### \u0414\u0435\u043c\u043e\n\n* [\u042d\u0442\u043e\u0442 \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u043a\u0443\u0440\u0441](https://play.manticoresearch.com/didyoumean/) \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 `CALL SUGGEST` \u0432 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u043c \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438.\n\n{.scale-0.5}\n\n<!-- proofread -->"
- },
- "is_code_or_comment": false,
- "model": "deepseek/deepseek-v3.2",
- "updated_at": 1766374251
- },
- "43be54e2af5d33c458369aacf7c71d53ff82bdde35d3ad51ed066a44fe01802e": {
- "original": "# Spell correction\n\nSpell correction, also known as:\n\n* Auto correction\n* Text correction\n* Fixing spelling errors\n* Typo tolerance\n* \"Did you mean?\"\n\nand so on, is a software functionality that suggests alternatives to or makes automatic corrections of the text you have typed in. The concept of correcting typed text dates back to the 1960s when computer scientist Warren Teitelman, who also invented the \"undo\" command, introduced a philosophy of computing called D.W.I.M., or \"Do What I Mean.\" Instead of programming computers to accept only perfectly formatted instructions, Teitelman argued that they should be programmed to recognize obvious mistakes.\n\nThe first well-known product to provide spell correction functionality was Microsoft Word 6.0, released in 1993.\n\n### How it works\n\nThere are a few ways spell correction can be done, but it's important to note that there is no purely programmatic way to convert your mistyped \"ipone\" into \"iphone\" with decent quality. Mostly, there has to be a dataset the system is based on. The dataset can be:\n\n* A dictionary of properly spelled words, which in turn can be:\n * Based on your real data. The idea here is that, for the most part, the spelling in the dictionary made up of your data is correct, and the system tries to find a word that is most similar to the typed word (we'll discuss how this can be done with Manticore shortly).\n * Or it can be based on an external dictionary unrelated to your data. The issue that may arise here is that your data and the external dictionary can be too different: some words may be missing in the dictionary, while others may be missing in your data.\n* Not just dictionary-based, but also context-aware, e.g., \"white ber\" would be corrected to \"white bear,\" while \"dark ber\" would be corrected to \"dark beer.\" The context might not just be a neighboring word in your query, but also your location, time of day, the current sentence's grammar (to change \"there\" to \"their\" or not), your search history, and virtually any other factors that can affect your intent.\n* Another classic approach is to use previous search queries as the dataset for spell correction. This is even more utilized in [autocomplete](../Searching/Autocomplete.md) functionality but makes sense for autocorrect too. The idea is that users are mostly right with spelling, so we can use words from their search history as a source of truth, even if we don't have the words in our documents or use an external dictionary. Context-awareness is also possible here.\n\nManticore provides the fuzzy search option and the commands `CALL QSUGGEST` and `CALL SUGGEST` that can be used for automatic spell correction purposes.\n\n## Fuzzy Search\n\nThe Fuzzy Search feature allows for more flexible matching by accounting for slight variations or misspellings in the search query. It works similarly to a normal `SELECT` SQL statement or a `/search` JSON request but provides additional parameters to control the fuzzy matching behavior.\n\n> NOTE: The `fuzzy` option requires [Manticore Buddy](../Installation/Manticore_Buddy.md). If it doesn't work, make sure Buddy is installed.\n\n> NOTE: The `fuzzy` option is not available for [multi-queries](../Searching/Multi-queries.md).\n\n## General syntax\n\n### SQL\n\n<!-- example Fuzzy_Search_SQL -->\n\nCODE_BLOCK_0\n\nNote: When conducting a fuzzy search via SQL, the MATCH clause should not contain any full-text operators except the [phrase search operator](../Searching/Full_text_matching/Operators.md#Phrase-search-operator) and should only include the words you intend to match.\n\n<!-- intro -->\n##### SQL:\n\n<!-- request SQL -->\n\nCODE_BLOCK_1\n\n<!-- request SQL with additional filters -->\nExample of a more complex Fuzzy search query with additional filters:\n\nCODE_BLOCK_2\n\n<!-- request JSON -->\n\nCODE_BLOCK_3\n\n<!-- response SQL -->\n\nCODE_BLOCK_4\n\n<!-- request SQL with preserve option -->\n\nCODE_BLOCK_5\n\n<!-- request JSON with preserve option -->\n\nCODE_BLOCK_6\n\n<!-- response SQL with preserve option -->\n\nCODE_BLOCK_7\n\n<!-- end -->\n\n### JSON\n\nCODE_BLOCK_8\n\nNote: If you use the [query_string](../Searching/Full_text_matching/Basic_usage.md#query_string), be aware that it does not support full-text operators except the [phrase search operator](../Searching/Full_text_matching/Operators.md#Phrase-search-operator). The query string should consist solely of the words you wish to match.\n\n### Options\n\n- `fuzzy`: Turn fuzzy search on or off.\n- `distance`: Set the Levenshtein distance for matching. The default is `2`.\n- `preserve`: `0` or `1` (default: `0`). When set to `1`, keeps words that don't have fuzzy matches in the search results (e.g., \"hello wrld\" returns both \"hello wrld\" and \"hello world\"). When set to `0`, only returns words with successful fuzzy matches (e.g., \"hello wrld\" returns only \"hello world\"). Particularly useful for preserving short words or proper nouns that may not exist in Manticore Search.\n- `layouts`: Keyboard layouts for detecting typing errors caused by keyboard layout mismatches (e.g., typing \"ghbdtn\" instead of \"\u043f\u0440\u0438\u0432\u0435\u0442\" when using wrong layout). Manticore compares character positions across different layouts to suggest corrections. Requires at least 2 layouts to effectively detect mismatches. No layouts are used by default. Use an empty string `''` (SQL) or array `[]` (JSON) to turn this off. Supported layouts include:\n - `be` - Belgian AZERTY layout\n - `bg` - Standard Bulgarian layout\n - `br` - Brazilian QWERTY layout\n - `ch` - Swiss QWERTZ layout\n - `de` - German QWERTZ layout\n - `dk` - Danish QWERTY layout\n - `es` - Spanish QWERTY layout\n - `fr` - French AZERTY layout\n - `uk` - British QWERTY layout\n - `gr` - Greek QWERTY layout\n - `it` - Italian QWERTY layout\n - `no` - Norwegian QWERTY layout\n - `pt` - Portuguese QWERTY layout\n - `ru` - Russian JCUKEN layout\n - `se` - Swedish QWERTY layout\n - `ua` - Ukrainian JCUKEN layout\n - `us` - American QWERTY layout\n\n### Links",
- "translations": {
- "chinese": "# \u62fc\u5199\u6821\u6b63\n\n\u62fc\u5199\u6821\u6b63\uff0c\u4e5f\u79f0\u4e3a\uff1a\n\n* \u81ea\u52a8\u66f4\u6b63\n* \u6587\u672c\u6821\u6b63\n* \u4fee\u6b63\u62fc\u5199\u9519\u8bef\n* \u952e\u5165\u5bb9\u9519\n* \u201c\u60a8\u662f\u5426\u662f\u6307\uff1f\u201d\n\n\u7b49\u7b49\uff0c\u662f\u4e00\u79cd\u8f6f\u4ef6\u529f\u80fd\uff0c\u53ef\u4ee5\u5efa\u8bae\u6216\u81ea\u52a8\u66f4\u6b63\u60a8\u8f93\u5165\u7684\u6587\u672c\u7684\u66ff\u4ee3\u65b9\u6848\u3002\u6821\u6b63\u8f93\u5165\u6587\u672c\u7684\u6982\u5ff5\u53ef\u4ee5\u8ffd\u6eaf\u52301960\u5e74\u4ee3\uff0c\u5f53\u65f6\u8ba1\u7b97\u673a\u79d1\u5b66\u5bb6Warren Teitelman\uff08\u4e5f\u662f\u201c\u64a4\u9500\u201d\u547d\u4ee4\u7684\u53d1\u660e\u8005\uff09\u5f15\u5165\u4e86\u4e00\u79cd\u79f0\u4e3aD.W.I.M.\uff08\u201cDo What I Mean\u201d\uff0c\u5373\u201c\u6309\u6211\u7684\u610f\u56fe\u6267\u884c\u201d\uff09\u7684\u8ba1\u7b97\u54f2\u5b66\u3002Teitelman\u8ba4\u4e3a\uff0c\u8ba1\u7b97\u673a\u4e0d\u5e94\u8be5\u4ec5\u88ab\u7f16\u7a0b\u4e3a\u63a5\u53d7\u683c\u5f0f\u5b8c\u7f8e\u7684\u6307\u4ee4\uff0c\u800c\u5e94\u8be5\u88ab\u7f16\u7a0b\u4e3a\u8bc6\u522b\u660e\u663e\u7684\u9519\u8bef\u3002\n\n\u7b2c\u4e00\u4e2a\u63d0\u4f9b\u62fc\u5199\u6821\u6b63\u529f\u80fd\u7684\u77e5\u540d\u4ea7\u54c1\u662f1993\u5e74\u53d1\u5e03\u7684Microsoft Word 6.0\u3002\n\n### \u5de5\u4f5c\u539f\u7406\n\n\u62fc\u5199\u6821\u6b63\u53ef\u4ee5\u901a\u8fc7\u51e0\u79cd\u65b9\u5f0f\u5b9e\u73b0\uff0c\u4f46\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0c\u6ca1\u6709\u7eaf\u7cb9\u7684\u7a0b\u5e8f\u5316\u65b9\u6cd5\u53ef\u4ee5\u5c06\u60a8\u8bef\u8f93\u5165\u7684\u201cipone\u201d\u9ad8\u8d28\u91cf\u5730\u8f6c\u6362\u4e3a\u201ciphone\u201d\u3002\u5927\u591a\u6570\u60c5\u51b5\u4e0b\uff0c\u7cfb\u7edf\u5fc5\u987b\u57fa\u4e8e\u67d0\u4e2a\u6570\u636e\u96c6\u3002\u6570\u636e\u96c6\u53ef\u4ee5\u662f\uff1a\n\n* \u4e00\u4e2a\u6b63\u786e\u62fc\u5199\u7684\u5355\u8bcd\u5b57\u5178\uff0c\u8be5\u5b57\u5178\u53ef\u4ee5\u662f\uff1a\n * \u57fa\u4e8e\u60a8\u7684\u771f\u5b9e\u6570\u636e\u3002\u8fd9\u91cc\u7684\u601d\u8def\u662f\uff0c\u5b57\u5178\u4e2d\u5927\u90e8\u5206\u62fc\u5199\u662f\u6b63\u786e\u7684\uff0c\u7cfb\u7edf\u4f1a\u5c1d\u8bd5\u627e\u5230\u4e0e\u8f93\u5165\u5355\u8bcd\u6700\u76f8\u4f3c\u7684\u5355\u8bcd\uff08\u6211\u4eec\u7a0d\u540e\u5c06\u8ba8\u8bba\u5982\u4f55\u4f7f\u7528Manticore\u5b9e\u73b0\u8fd9\u4e00\u70b9\uff09\u3002\n * \u6216\u8005\u57fa\u4e8e\u4e0e\u60a8\u7684\u6570\u636e\u65e0\u5173\u7684\u5916\u90e8\u5b57\u5178\u3002\u8fd9\u91cc\u53ef\u80fd\u51fa\u73b0\u7684\u95ee\u9898\u662f\uff0c\u60a8\u7684\u6570\u636e\u548c\u5916\u90e8\u5b57\u5178\u53ef\u80fd\u5dee\u5f02\u592a\u5927\uff1a\u5b57\u5178\u4e2d\u53ef\u80fd\u7f3a\u5c11\u4e00\u4e9b\u5355\u8bcd\uff0c\u800c\u60a8\u7684\u6570\u636e\u4e2d\u53ef\u80fd\u7f3a\u5c11\u5176\u4ed6\u5355\u8bcd\u3002\n* \u4e0d\u4ec5\u57fa\u4e8e\u5b57\u5178\uff0c\u8fd8\u5177\u5907\u4e0a\u4e0b\u6587\u611f\u77e5\u80fd\u529b\uff0c\u4f8b\u5982\u201cwhite ber\u201d\u4f1a\u88ab\u6821\u6b63\u4e3a\u201cwhite bear\u201d\uff0c\u800c\u201cdark ber\u201d\u4f1a\u88ab\u6821\u6b63\u4e3a\u201cdark beer\u201d\u3002\u4e0a\u4e0b\u6587\u53ef\u80fd\u4e0d\u4ec5\u4ec5\u662f\u67e5\u8be2\u4e2d\u7684\u76f8\u90bb\u5355\u8bcd\uff0c\u8fd8\u53ef\u80fd\u5305\u62ec\u60a8\u7684\u4f4d\u7f6e\u3001\u65f6\u95f4\u3001\u5f53\u524d\u53e5\u5b50\u7684\u8bed\u6cd5\uff08\u4f8b\u5982\u662f\u5426\u5c06\u201cthere\u201d\u66f4\u6b63\u4e3a\u201ctheir\u201d\uff09\u3001\u60a8\u7684\u641c\u7d22\u5386\u53f2\uff0c\u4ee5\u53ca\u51e0\u4e4e\u6240\u6709\u53ef\u80fd\u5f71\u54cd\u60a8\u610f\u56fe\u7684\u5176\u4ed6\u56e0\u7d20\u3002\n* \u53e6\u4e00\u79cd\u7ecf\u5178\u65b9\u6cd5\u662f\u4f7f\u7528\u4e4b\u524d\u7684\u641c\u7d22\u67e5\u8be2\u4f5c\u4e3a\u62fc\u5199\u6821\u6b63\u7684\u6570\u636e\u96c6\u3002\u8fd9\u5728[\u81ea\u52a8\u8865\u5168](../Searching/Autocomplete.md)\u529f\u80fd\u4e2d\u88ab\u66f4\u5e7f\u6cdb\u5730\u4f7f\u7528\uff0c\u4f46\u5bf9\u81ea\u52a8\u66f4\u6b63\u4e5f\u9002\u7528\u3002\u5176\u601d\u8def\u662f\uff0c\u7528\u6237\u5728\u62fc\u5199\u4e0a\u5927\u591a\u662f\u6b63\u786e\u7684\uff0c\u56e0\u6b64\u6211\u4eec\u53ef\u4ee5\u4f7f\u7528\u4ed6\u4eec\u641c\u7d22\u5386\u53f2\u4e2d\u7684\u5355\u8bcd\u4f5c\u4e3a\u4e8b\u5b9e\u6765\u6e90\uff0c\u5373\u4f7f\u6211\u4eec\u6ca1\u6709\u5728\u6587\u6863\u4e2d\u4f7f\u7528\u8fd9\u4e9b\u5355\u8bcd\u6216\u4f7f\u7528\u5916\u90e8\u5b57\u5178\u3002\u6b64\u5904\u4e5f\u53ef\u4ee5\u5b9e\u73b0\u4e0a\u4e0b\u6587\u611f\u77e5\u3002\n\nManticore\u63d0\u4f9b\u4e86\u6a21\u7cca\u641c\u7d22\u9009\u9879\u4ee5\u53ca\u53ef\u7528\u4e8e\u81ea\u52a8\u62fc\u5199\u6821\u6b63\u7684\u547d\u4ee4`CALL QSUGGEST`\u548c`CALL SUGGEST`\u3002\n\n## \u6a21\u7cca\u641c\u7d22\n\n\u6a21\u7cca\u641c\u7d22\u529f\u80fd\u901a\u8fc7\u8003\u8651\u641c\u7d22\u67e5\u8be2\u4e2d\u7684\u7ec6\u5fae\u53d8\u5316\u6216\u62fc\u5199\u9519\u8bef\uff0c\u5141\u8bb8\u66f4\u7075\u6d3b\u7684\u5339\u914d\u3002\u5b83\u7684\u5de5\u4f5c\u65b9\u5f0f\u7c7b\u4f3c\u4e8e\u666e\u901a\u7684`SELECT` SQL\u8bed\u53e5\u6216`/search` JSON\u8bf7\u6c42\uff0c\u4f46\u63d0\u4f9b\u4e86\u989d\u5916\u7684\u53c2\u6570\u6765\u63a7\u5236\u6a21\u7cca\u5339\u914d\u884c\u4e3a\u3002\n\n> \u6ce8\u610f\uff1a`fuzzy`\u9009\u9879\u9700\u8981[Manticore Buddy](../Installation/Manticore_Buddy.md)\u3002\u5982\u679c\u4e0d\u8d77\u4f5c\u7528\uff0c\u8bf7\u786e\u4fdd\u5df2\u5b89\u88c5Buddy\u3002\n\n> \u6ce8\u610f\uff1a`fuzzy`\u9009\u9879\u4e0d\u9002\u7528\u4e8e[\u591a\u67e5\u8be2](../Searching/Multi-queries.md)\u3002\n\n## \u901a\u7528\u8bed\u6cd5\n\n### SQL\n\n<!-- example Fuzzy_Search_SQL -->\n\nCODE_BLOCK_0\n\n\u6ce8\u610f\uff1a\u901a\u8fc7SQL\u8fdb\u884c\u6a21\u7cca\u641c\u7d22\u65f6\uff0cMATCH\u5b50\u53e5\u4e0d\u5e94\u5305\u542b\u4efb\u4f55\u5168\u6587\u672c\u8fd0\u7b97\u7b26\uff0c\u9664\u4e86[\u77ed\u8bed\u641c\u7d22\u8fd0\u7b97\u7b26](../Searching/Full_text_matching/Operators.md#Phrase-search-operator)\uff0c\u5e76\u4e14\u5e94\u4ec5\u5305\u542b\u60a8\u6253\u7b97\u5339\u914d\u7684\u5355\u8bcd\u3002\n\n<!-- intro -->\n##### SQL:\n\n<!-- request SQL -->\n\nCODE_BLOCK_1\n\n<!-- request SQL with additional filters -->\n\u5e26\u6709\u9644\u52a0\u7b5b\u9009\u5668\u7684\u66f4\u590d\u6742\u6a21\u7cca\u641c\u7d22\u67e5\u8be2\u793a\u4f8b\uff1a\n\nCODE_BLOCK_2\n\n<!-- request JSON -->\n\nCODE_BLOCK_3\n\n<!-- response SQL -->\n\nCODE_BLOCK_4\n\n<!-- request SQL with preserve option -->\n\nCODE_BLOCK_5\n\n<!-- request JSON with preserve option -->\n\nCODE_BLOCK_6\n\n<!-- response SQL with preserve option -->\n\nCODE_BLOCK_7\n\n<!-- end -->\n\n### JSON\n\nCODE_BLOCK_8\n\n\u6ce8\u610f\uff1a\u5982\u679c\u60a8\u4f7f\u7528[query_string](../Searching/Full_text_matching/Basic_usage.md#query_string)\uff0c\u8bf7\u6ce8\u610f\u5b83\u4e0d\u652f\u6301\u9664[\u77ed\u8bed\u641c\u7d22\u8fd0\u7b97\u7b26](../Searching/Full_text_matching/Operators.md#Phrase-search-operator)\u4ee5\u5916\u7684\u5168\u6587\u672c\u8fd0\u7b97\u7b26\u3002\u67e5\u8be2\u5b57\u7b26\u4e32\u5e94\u4ec5\u5305\u542b\u60a8\u5e0c\u671b\u5339\u914d\u7684\u5355\u8bcd\u3002\n\n### \u9009\u9879\n\n- `fuzzy`\uff1a\u542f\u7528\u6216\u5173\u95ed\u6a21\u7cca\u641c\u7d22\u3002\n- `distance`\uff1a\u8bbe\u7f6e\u5339\u914d\u7684\u83b1\u6587\u65af\u5766\u8ddd\u79bb\u3002\u9ed8\u8ba4\u503c\u4e3a`2`\u3002\n- `preserve`\uff1a`0`\u6216`1`\uff08\u9ed8\u8ba4\uff1a`0`\uff09\u3002\u5f53\u8bbe\u7f6e\u4e3a`1`\u65f6\uff0c\u5728\u641c\u7d22\u7ed3\u679c\u4e2d\u4fdd\u7559\u6ca1\u6709\u6a21\u7cca\u5339\u914d\u7684\u5355\u8bcd\uff08\u4f8b\u5982\uff0c\u201chello wrld\u201d\u8fd4\u56de\u201chello wrld\u201d\u548c\u201chello world\u201d\uff09\u3002\u5f53\u8bbe\u7f6e\u4e3a`0`\u65f6\uff0c\u4ec5\u8fd4\u56de\u6210\u529f\u6a21\u7cca\u5339\u914d\u7684\u5355\u8bcd\uff08\u4f8b\u5982\uff0c\u201chello wrld\u201d\u4ec5\u8fd4\u56de\u201chello world\u201d\uff09\u3002\u5bf9\u4e8e\u4fdd\u7559\u53ef\u80fd\u5728Manticore Search\u4e2d\u4e0d\u5b58\u5728\u7684\u77ed\u5355\u8bcd\u6216\u4e13\u6709\u540d\u8bcd\u7279\u522b\u6709\u7528\u3002\n- `layouts`\uff1a\u7528\u4e8e\u68c0\u6d4b\u952e\u76d8\u5e03\u5c40\u4e0d\u5339\u914d\u5bfc\u81f4\u7684\u6253\u5b57\u9519\u8bef\u7684\u952e\u76d8\u5e03\u5c40\uff08\u4f8b\u5982\uff0c\u4f7f\u7528\u9519\u8bef\u5e03\u5c40\u65f6\u8f93\u5165\u201cghbdtn\u201d\u800c\u4e0d\u662f\u201c\u043f\u0440\u0438\u0432\u0435\u0442\u201d\uff09\u3002Manticore\u4f1a\u6bd4\u8f83\u4e0d\u540c\u5e03\u5c40\u4e2d\u7684\u5b57\u7b26\u4f4d\u7f6e\u4ee5\u5efa\u8bae\u66f4\u6b63\u3002\u8981\u6709\u6548\u68c0\u6d4b\u4e0d\u5339\u914d\uff0c\u81f3\u5c11\u9700\u89812\u79cd\u5e03\u5c40\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u4e0d\u4f7f\u7528\u4efb\u4f55\u5e03\u5c40\u3002\u4f7f\u7528\u7a7a\u5b57\u7b26\u4e32`''`\uff08SQL\uff09\u6216\u6570\u7ec4`[]`\uff08JSON\uff09\u6765\u5173\u95ed\u6b64\u529f\u80fd\u3002\u652f\u6301\u7684\u5e03\u5c40\u5305\u62ec\uff1a\n - `be` - \u6bd4\u5229\u65f6AZERTY\u5e03\u5c40\n - `bg` - \u6807\u51c6\u4fdd\u52a0\u5229\u4e9a\u5e03\u5c40\n - `br` - \u5df4\u897fQWERTY\u5e03\u5c40\n - `ch` - \u745e\u58ebQWERTZ\u5e03\u5c40\n - `de` - \u5fb7\u56fdQWERTZ\u5e03\u5c40\n - `dk` - \u4e39\u9ea6QWERTY\u5e03\u5c40\n - `es` - \u897f\u73ed\u7259QWERTY\u5e03\u5c40\n - `fr` - \u6cd5\u56fdAZERTY\u5e03\u5c40\n - `uk` - \u82f1\u56fdQWERTY\u5e03\u5c40\n - `gr` - \u5e0c\u814aQWERTY\u5e03\u5c40\n - `it` - \u610f\u5927\u5229QWERTY\u5e03\u5c40\n - `no` - \u632a\u5a01QWERTY\u5e03\u5c40\n - `pt` - \u8461\u8404\u7259QWERTY\u5e03\u5c40\n - `ru` - \u4fc4\u8bedJCUKEN\u5e03\u5c40\n - `se` - \u745e\u5178QWERTY\u5e03\u5c40\n - `ua` - \u4e4c\u514b\u5170JCUKEN\u5e03\u5c40\n - `us` - \u7f8e\u56fdQWERTY\u5e03\u5c40\n\n### \u94fe\u63a5",
- "russian": "# \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0440\u0444\u043e\u0433\u0440\u0430\u0444\u0438\u0438\n\n\u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0440\u0444\u043e\u0433\u0440\u0430\u0444\u0438\u0438, \u0442\u0430\u043a\u0436\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0435 \u043a\u0430\u043a:\n\n* \u0410\u0432\u0442\u043e\u043a\u043e\u0440\u0440\u0435\u043a\u0446\u0438\u044f\n* \u041a\u043e\u0440\u0440\u0435\u043a\u0446\u0438\u044f \u0442\u0435\u043a\u0441\u0442\u0430\n* \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0440\u0444\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043e\u0448\u0438\u0431\u043e\u043a\n* \u0414\u043e\u043f\u0443\u0441\u043a \u043e\u043f\u0435\u0447\u0430\u0442\u043e\u043a\n* \"\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0432\u044b \u0438\u043c\u0435\u043b\u0438 \u0432 \u0432\u0438\u0434\u0443?\"\n\n\u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435, \u044d\u0442\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u044b \u0438\u043b\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0439 \u0432\u0430\u043c\u0438 \u0442\u0435\u043a\u0441\u0442. \u041a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044f \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0430\u0431\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430 \u0432\u043e\u0441\u0445\u043e\u0434\u0438\u0442 \u043a 1960-\u043c \u0433\u043e\u0434\u0430\u043c, \u043a\u043e\u0433\u0434\u0430 \u0443\u0447\u0451\u043d\u044b\u0439-\u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0449\u0438\u043a \u0423\u043e\u0440\u0440\u0435\u043d \u0422\u0435\u0439\u0442\u0435\u043b\u044c\u043c\u0430\u043d, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0442\u0430\u043a\u0436\u0435 \u0438\u0437\u043e\u0431\u0440\u0451\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \"\u043e\u0442\u043c\u0435\u043d\u0438\u0442\u044c\", \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0444\u0438\u043b\u043e\u0441\u043e\u0444\u0438\u044e \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439 \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c D.W.I.M., \u0438\u043b\u0438 \"\u0414\u0435\u043b\u0430\u0439 \u0427\u0442\u043e \u042f \u0418\u043c\u0435\u044e \u0432 \u0412\u0438\u0434\u0443\". \u0412\u043c\u0435\u0441\u0442\u043e \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u044b \u043d\u0430 \u043f\u0440\u0438\u0451\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u043e\u0442\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439, \u0422\u0435\u0439\u0442\u0435\u043b\u044c\u043c\u0430\u043d \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u043b, \u0447\u0442\u043e \u0438\u0445 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u0435 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u0445 \u043e\u0448\u0438\u0431\u043e\u043a.\n\n\u041f\u0435\u0440\u0432\u044b\u043c \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u043c \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u043c, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0432\u0448\u0438\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0440\u0444\u043e\u0433\u0440\u0430\u0444\u0438\u0438, \u0431\u044b\u043b Microsoft Word 6.0, \u0432\u044b\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0439 \u0432 1993 \u0433\u043e\u0434\u0443.\n\n### \u041a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\n\n\u0415\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0440\u0444\u043e\u0433\u0440\u0430\u0444\u0438\u0438, \u043d\u043e \u0432\u0430\u0436\u043d\u043e \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0447\u0438\u0441\u0442\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u0441 \u0434\u043e\u0441\u0442\u043e\u0439\u043d\u044b\u043c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0430\u0448\u0443 \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0443 \"ipone\" \u0432 \"iphone\". \u0412 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043d\u0430 \u043d\u0430\u0431\u043e\u0440\u0435 \u0434\u0430\u043d\u043d\u044b\u0445. \u041d\u0430\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c:\n\n* \u0421\u043b\u043e\u0432\u0430\u0440\u0451\u043c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u0441\u043b\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0439, \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c:\n * \u041e\u0441\u043d\u043e\u0432\u0430\u043d \u043d\u0430 \u0432\u0430\u0448\u0438\u0445 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u0418\u0434\u0435\u044f \u0437\u0434\u0435\u0441\u044c \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u043e \u0431\u043e\u043b\u044c\u0448\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u043e\u0440\u0444\u043e\u0433\u0440\u0430\u0444\u0438\u044f \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u0435, \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u043c \u0438\u0437 \u0432\u0430\u0448\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0430\u044f, \u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0439\u0442\u0438 \u0441\u043b\u043e\u0432\u043e, \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0445\u043e\u0436\u0435\u0435 \u043d\u0430 \u0432\u0432\u0435\u0434\u0451\u043d\u043d\u043e\u0435 (\u043c\u044b \u0441\u043a\u043e\u0440\u043e \u043e\u0431\u0441\u0443\u0434\u0438\u043c, \u043a\u0430\u043a \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Manticore).\n * \u0418\u043b\u0438 \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u0441\u043d\u043e\u0432\u0430\u043d \u043d\u0430 \u0432\u043d\u0435\u0448\u043d\u0435\u043c \u0441\u043b\u043e\u0432\u0430\u0440\u0435, \u043d\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u043c \u0441 \u0432\u0430\u0448\u0438\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043c\u043e\u0436\u0435\u0442 \u0437\u0434\u0435\u0441\u044c \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442\u044c, \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432\u0430\u0448\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u043c\u043e\u0433\u0443\u0442 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0441\u0438\u043b\u044c\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f: \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043b\u043e\u0432\u0430 \u043c\u043e\u0433\u0443\u0442 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u0435, \u0432 \u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u0430\u043a \u0434\u0440\u0443\u0433\u0438\u0435 \u043c\u043e\u0433\u0443\u0442 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u0432\u0430\u0448\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.\n* \u041d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u043d\u0430 \u0441\u043b\u043e\u0432\u0430\u0440\u0435, \u043d\u043e \u0438 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0449\u0438\u043c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \"white ber\" \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e \u043d\u0430 \"white bear\", \u0430 \"dark ber\" \u2014 \u043d\u0430 \"dark beer\". \u041a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u043e\u043c \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043e\u0441\u0435\u0434\u043d\u0435\u0435 \u0441\u043b\u043e\u0432\u043e \u0432 \u0432\u0430\u0448\u0435\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u0435, \u043d\u043e \u0438 \u0432\u0430\u0448\u0435 \u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0432\u0440\u0435\u043c\u044f \u0441\u0443\u0442\u043e\u043a, \u0433\u0440\u0430\u043c\u043c\u0430\u0442\u0438\u043a\u0430 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f (\u0447\u0442\u043e\u0431\u044b \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \"there\" \u043d\u0430 \"their\" \u0438\u043b\u0438 \u043d\u0435\u0442), \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u0432\u0430\u0448\u0438\u0445 \u043f\u043e\u0438\u0441\u043a\u043e\u0432 \u0438 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043b\u044e\u0431\u044b\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 \u0444\u0430\u043a\u0442\u043e\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u0432\u043b\u0438\u044f\u0442\u044c \u043d\u0430 \u0432\u0430\u0448\u0435 \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u0438\u0435.\n* \u0415\u0449\u0451 \u043e\u0434\u0438\u043d \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0435 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043d\u0430\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0440\u0444\u043e\u0433\u0440\u0430\u0444\u0438\u0438. \u042d\u0442\u043e \u0435\u0449\u0451 \u0431\u043e\u043b\u0435\u0435 \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 [\u0430\u0432\u0442\u043e\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f](../Searching/Autocomplete.md), \u043d\u043e \u0442\u0430\u043a\u0436\u0435 \u0438\u043c\u0435\u0435\u0442 \u0441\u043c\u044b\u0441\u043b \u0438 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043a\u043e\u0440\u0440\u0435\u043a\u0446\u0438\u0438. \u0418\u0434\u0435\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u043f\u0440\u0430\u0432\u044b \u0432 \u043e\u0440\u0444\u043e\u0433\u0440\u0430\u0444\u0438\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043b\u043e\u0432\u0430 \u0438\u0437 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0438\u0445 \u043f\u043e\u0438\u0441\u043a\u0430 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u0438\u0441\u0442\u0438\u043d\u044b, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0443 \u043d\u0430\u0441 \u043d\u0435\u0442 \u044d\u0442\u0438\u0445 \u0441\u043b\u043e\u0432 \u0432 \u043d\u0430\u0448\u0438\u0445 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0445 \u0438\u043b\u0438 \u043c\u044b \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0441\u043b\u043e\u0432\u0430\u0440\u044c. \u0423\u0447\u0451\u0442 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430 \u0442\u0430\u043a\u0436\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u0435\u043d \u0437\u0434\u0435\u0441\u044c.\n\nManticore \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u043f\u0446\u0438\u044e \u043d\u0435\u0447\u0451\u0442\u043a\u043e\u0433\u043e \u043f\u043e\u0438\u0441\u043a\u0430 \u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b `CALL QSUGGEST` \u0438 `CALL SUGGEST`, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u044b \u0434\u043b\u044f \u0446\u0435\u043b\u0435\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0440\u0444\u043e\u0433\u0440\u0430\u0444\u0438\u0438.\n\n## \u041d\u0435\u0447\u0451\u0442\u043a\u0438\u0439 \u043f\u043e\u0438\u0441\u043a\n\n\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043d\u0435\u0447\u0451\u0442\u043a\u043e\u0433\u043e \u043f\u043e\u0438\u0441\u043a\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0433\u0438\u0431\u043a\u043e\u0435 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435, \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044f \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0432\u0430\u0440\u0438\u0430\u0446\u0438\u0438 \u0438\u043b\u0438 \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0438 \u0432 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u043e\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u0435. \u041e\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u043e\u0431\u044b\u0447\u043d\u043e\u043c\u0443 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0443 SQL `SELECT` \u0438\u043b\u0438 JSON-\u0437\u0430\u043f\u0440\u043e\u0441\u0443 `/search`, \u043d\u043e \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435\u043c \u043d\u0435\u0447\u0451\u0442\u043a\u043e\u0433\u043e \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f.\n\n> \u041f\u0420\u0418\u041c\u0415\u0427\u0410\u041d\u0418\u0415: \u041e\u043f\u0446\u0438\u044f `fuzzy` \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043d\u0430\u043b\u0438\u0447\u0438\u044f [Manticore Buddy](../Installation/Manticore_Buddy.md). \u0415\u0441\u043b\u0438 \u043e\u043d\u0430 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u0443\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e Buddy \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d.\n\n> \u041f\u0420\u0418\u041c\u0415\u0427\u0410\u041d\u0418\u0415: \u041e\u043f\u0446\u0438\u044f `fuzzy` \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0434\u043b\u044f [\u043c\u043d\u043e\u0433\u043e\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432](../Searching/Multi-queries.md).\n\n## \u041e\u0431\u0449\u0438\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\n\n### SQL\n\n<!-- example Fuzzy_Search_SQL -->\n\nCODE_BLOCK_0\n\n\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435: \u041f\u0440\u0438 \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0438 \u043d\u0435\u0447\u0451\u0442\u043a\u043e\u0433\u043e \u043f\u043e\u0438\u0441\u043a\u0430 \u0447\u0435\u0440\u0435\u0437 SQL, \u0432 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0438 MATCH \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043f\u043e\u043b\u043d\u043e\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432, \u043a\u0440\u043e\u043c\u0435 [\u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u043f\u043e\u0438\u0441\u043a\u0430 \u043f\u043e \u0444\u0440\u0430\u0437\u0435](../Searching/Full_text_matching/Operators.md#Phrase-search-operator), \u0438 \u043e\u043d\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u043e\u0432\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u044b \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c.\n\n<!-- intro -->\n##### SQL:\n\n<!-- request SQL -->\n\nCODE_BLOCK_1\n\n<!-- request SQL with additional filters -->\n\u041f\u0440\u0438\u043c\u0435\u0440 \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043d\u0435\u0447\u0451\u0442\u043a\u043e\u0433\u043e \u043f\u043e\u0438\u0441\u043a\u0430 \u0441 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u043c\u0438:\n\nCODE_BLOCK_2\n\n<!-- request JSON -->\n\nCODE_BLOCK_3\n\n<!-- response SQL -->\n\nCODE_BLOCK_4\n\n<!-- request SQL with preserve option -->\n\nCODE_BLOCK_5\n\n<!-- request JSON with preserve option -->\n\nCODE_BLOCK_6\n\n<!-- response SQL with preserve option -->\n\nCODE_BLOCK_7\n\n<!-- end -->\n\n### JSON\n\nCODE_BLOCK_8\n\n\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435: \u0415\u0441\u043b\u0438 \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 [query_string](../Searching/Full_text_matching/Basic_usage.md#query_string), \u0438\u043c\u0435\u0439\u0442\u0435 \u0432 \u0432\u0438\u0434\u0443, \u0447\u0442\u043e \u043e\u043d \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043f\u043e\u043b\u043d\u043e\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b, \u043a\u0440\u043e\u043c\u0435 [\u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u043f\u043e\u0438\u0441\u043a\u0430 \u043f\u043e \u0444\u0440\u0430\u0437\u0435](../Searching/Full_text_matching/Operators.md#Phrase-search-operator). \u0421\u0442\u0440\u043e\u043a\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0441\u043e\u0441\u0442\u043e\u044f\u0442\u044c \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0438\u0437 \u0441\u043b\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c.\n\n### \u041e\u043f\u0446\u0438\u0438\n\n- `fuzzy`: \u0412\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0438\u043b\u0438 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043d\u0435\u0447\u0451\u0442\u043a\u0438\u0439 \u043f\u043e\u0438\u0441\u043a.\n- `distance`: \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u041b\u0435\u0432\u0435\u043d\u0448\u0442\u0435\u0439\u043d\u0430 \u0434\u043b\u044f \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e `2`.\n- `preserve`: `0` \u0438\u043b\u0438 `1` (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e: `0`). \u041f\u0440\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0432 `1` \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0441\u043b\u043e\u0432\u0430, \u043d\u0435 \u0438\u043c\u0435\u044e\u0449\u0438\u0435 \u043d\u0435\u0447\u0451\u0442\u043a\u0438\u0445 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0439, \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u0445 \u043f\u043e\u0438\u0441\u043a\u0430 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \"hello wrld\" \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0438 \"hello wrld\", \u0438 \"hello world\"). \u041f\u0440\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0432 `0` \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u043e\u0432\u0430 \u0441 \u0443\u0441\u043f\u0435\u0448\u043d\u044b\u043c\u0438 \u043d\u0435\u0447\u0451\u0442\u043a\u0438\u043c\u0438 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u044f\u043c\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \"hello wrld\" \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \"hello world\"). \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0434\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0445 \u0441\u043b\u043e\u0432 \u0438\u043b\u0438 \u0438\u043c\u0451\u043d \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0431\u044b\u0442\u044c \u0432 Manticore Search.\n- `layouts`: \u0420\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0438 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b \u0434\u043b\u044f \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043e\u043a \u0432\u0432\u043e\u0434\u0430, \u0432\u044b\u0437\u0432\u0430\u043d\u043d\u044b\u0445 \u043d\u0435\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435\u043c \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0438 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u0432\u043e\u0434 \"ghbdtn\" \u0432\u043c\u0435\u0441\u0442\u043e \"\u043f\u0440\u0438\u0432\u0435\u0442\" \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0438). Manticore \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430\u0445, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u0442\u044c \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f. \u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c 2 \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0438 \u0434\u043b\u044f \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u043d\u0435\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0439. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0438 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043f\u0443\u0441\u0442\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 `''` (SQL) \u0438\u043b\u0438 \u043c\u0430\u0441\u0441\u0438\u0432 `[]` (JSON), \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u044d\u0442\u043e. \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0435 \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0438 \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0442:\n - `be` - \u0411\u0435\u043b\u044c\u0433\u0438\u0439\u0441\u043a\u0430\u044f \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430 AZERTY\n - `bg` - \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u0431\u043e\u043b\u0433\u0430\u0440\u0441\u043a\u0430\u044f \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430\n - `br` - \u0411\u0440\u0430\u0437\u0438\u043b\u044c\u0441\u043a\u0430\u044f \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430 QWERTY\n - `ch` - \u0428\u0432\u0435\u0439\u0446\u0430\u0440\u0441\u043a\u0430\u044f \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430 QWERTZ\n - `de` - \u041d\u0435\u043c\u0435\u0446\u043a\u0430\u044f \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430 QWERTZ\n - `dk` - \u0414\u0430\u0442\u0441\u043a\u0430\u044f \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430 QWERTY\n - `es` - \u0418\u0441\u043f\u0430\u043d\u0441\u043a\u0430\u044f \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430 QWERTY\n - `fr` - \u0424\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0430\u044f \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430 AZERTY\n - `uk` - \u0411\u0440\u0438\u0442\u0430\u043d\u0441\u043a\u0430\u044f \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430 QWERTY\n - `gr` - \u0413\u0440\u0435\u0447\u0435\u0441\u043a\u0430\u044f \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430 QWERTY\n - `it` - \u0418\u0442\u0430\u043b\u044c\u044f\u043d\u0441\u043a\u0430\u044f \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430 QWERTY\n - `no` - \u041d\u043e\u0440\u0432\u0435\u0436\u0441\u043a\u0430\u044f \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430 QWERTY\n - `pt` - \u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u044c\u0441\u043a\u0430\u044f \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430 QWERTY\n - `ru` - \u0420\u0443\u0441\u0441\u043a\u0430\u044f \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430 JCUKEN\n - `se` - \u0428\u0432\u0435\u0434\u0441\u043a\u0430\u044f \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430 QWERTY\n - `ua` - \u0423\u043a\u0440\u0430\u0438\u043d\u0441\u043a\u0430\u044f \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430 JCUKEN\n - `us` - \u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430\u044f \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430 QWERTY\n\n### \u0421\u0441\u044b\u043b\u043a\u0438"
- },
- "is_code_or_comment": false,
- "model": "qwen/qwen3-14b",
- "updated_at": 1767381431
- },
- "a3fc25a0d130bc308879419c6a1dd60ff573ab3fb9aaf496507f466c7870783b": {
- "original": "The option accepts two values:\n- `'phrase'` - Performs exact phrase searches. For example, when suggesting \"bag with tassel\", it searches for the exact phrase `\"bag with tassel\"` and counts documents containing these words as an adjacent phrase.\n- `'words'` - Performs bag-of-words searches. For example, when suggesting \"bag with tassel\", it searches for `bag with tassel` (without quotes) and counts documents containing all these words, regardless of order or intervening words.\n\n> NOTE: The `search_mode` option only works when `sentence` is enabled (i.e., when the input contains multiple words). For single-word queries, `search_mode` is ignored.\n\n> NOTE: **Performance consideration**: Each suggestion candidate triggers a separate search query against the index. If you need to evaluate many candidates, consider using a lower `limit` value to reduce the number of searches performed.\n\nWhen `search_mode` is enabled, results include a `found_docs` column showing the document count for each suggestion, and results are re-ranked by `found_docs` descending, then by `distance` ascending.\n\n<!-- intro -->\n##### Example with phrase matching:\n\n<!-- request Example -->\n\nCODE_BLOCK_23\n\n<!-- response Example -->\n\nCODE_BLOCK_24\n\n<!-- end -->\n\n<!-- intro -->\n##### Example comparing phrase vs words matching:\n\n<!-- request Example -->\n\nCODE_BLOCK_25\n\n<!-- response Example -->\n\nCODE_BLOCK_26\n\n<!-- end -->\n\n**Understanding the difference**:\n- **Phrase matching** (`'phrase'`): Searches for exact sequences. The query `\"test carpet\"` matches only documents where these words appear together in that exact order (e.g., \"test carpet cleaning\" matches, but \"test the carpet\" or \"carpet test\" do not).\n- **Bag-of-words matching** (`'words'`): Searches for all words to exist in the document, order doesn't matter. The query `test carpet` matches any document containing both \"test\" and \"carpet\" anywhere (e.g., \"test the carpet\", \"test red carpet\", \"carpet test\" all match).\n\n### Demo\n\n* [This interactive course](https://play.manticoresearch.com/didyoumean/) shows how `CALL SUGGEST` works in a little web app.\n\n{.scale-0.5}\n\n<!-- proofread -->\n\n",
- "translations": {
- "russian": "\u041e\u043f\u0446\u0438\u044f \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0434\u0432\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:\n- `'phrase'` - \u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043f\u043e\u0438\u0441\u043a \u0442\u043e\u0447\u043d\u044b\u0445 \u0444\u0440\u0430\u0437. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u0438 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \"bag with tassel\" \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0438\u0441\u043a \u0442\u043e\u0447\u043d\u043e\u0439 \u0444\u0440\u0430\u0437\u044b `\"bag with tassel\"` \u0438 \u043f\u043e\u0434\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0435 \u044d\u0442\u0438 \u0441\u043b\u043e\u0432\u0430 \u043a\u0430\u043a \u0441\u043c\u0435\u0436\u043d\u0443\u044e \u0444\u0440\u0430\u0437\u0443.\n- `'words'` - \u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043f\u043e\u0438\u0441\u043a \u043f\u043e \u043c\u043e\u0434\u0435\u043b\u0438 \"\u043c\u0435\u0448\u043e\u043a \u0441\u043b\u043e\u0432\". \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u0438 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \"bag with tassel\" \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0438\u0441\u043a `bag with tassel` (\u0431\u0435\u0437 \u043a\u0430\u0432\u044b\u0447\u0435\u043a) \u0438 \u043f\u043e\u0434\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0435 \u0432\u0441\u0435 \u044d\u0442\u0438 \u0441\u043b\u043e\u0432\u0430, \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u043f\u043e\u0440\u044f\u0434\u043a\u0430 \u0438\u043b\u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u043b\u043e\u0432 \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438.\n\n> \u041f\u0420\u0418\u041c\u0415\u0427\u0410\u041d\u0418\u0415: \u041e\u043f\u0446\u0438\u044f `search_mode` \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u043e\u0433\u0434\u0430, \u043a\u043e\u0433\u0434\u0430 \u0432\u043a\u043b\u044e\u0447\u0435\u043d \u0440\u0435\u0436\u0438\u043c `sentence` (\u0442.\u0435. \u043a\u043e\u0433\u0434\u0430 \u0432\u0432\u043e\u0434 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u043e\u0432). \u0414\u043b\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0438\u0437 \u043e\u0434\u043d\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 `search_mode` \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f.\n\n> \u041f\u0420\u0418\u041c\u0415\u0427\u0410\u041d\u0418\u0415: **\u0421\u043e\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438**: \u041a\u0430\u0436\u0434\u044b\u0439 \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442 \u043d\u0430 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u043a \u0438\u043d\u0434\u0435\u043a\u0441\u0443. \u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043e\u0446\u0435\u043d\u0438\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u043e\u0432, \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u0435\u043d\u044c\u0448\u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f `limit`, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0445 \u043f\u043e\u0438\u0441\u043a\u043e\u0432.\n\n\u041a\u043e\u0433\u0434\u0430 `search_mode` \u0432\u043a\u043b\u044e\u0447\u0435\u043d, \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0442 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 `found_docs`, \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0449\u0438\u0439 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u0435\u0440\u0435\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u043e \u0443\u0431\u044b\u0432\u0430\u043d\u0438\u044e `found_docs`, \u0430 \u0437\u0430\u0442\u0435\u043c \u043f\u043e \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430\u043d\u0438\u044e `distance`.\n\n<!-- intro -->\n##### \u041f\u0440\u0438\u043c\u0435\u0440 \u0441 \u0444\u0440\u0430\u0437\u043e\u0432\u044b\u043c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435\u043c:\n\n<!-- request Example -->\n\nCODE_BLOCK_23\n\n<!-- response Example -->\n\nCODE_BLOCK_24\n\n<!-- end -->\n\n<!-- intro -->\n##### \u041f\u0440\u0438\u043c\u0435\u0440 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0444\u0440\u0430\u0437\u043e\u0432\u043e\u0433\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f \u043f\u043e \u0441\u043b\u043e\u0432\u0430\u043c:\n\n<!-- request Example -->\n\nCODE_BLOCK_25\n\n<!-- response Example -->\n\nCODE_BLOCK_26\n\n<!-- end -->\n\n**\u041f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0440\u0430\u0437\u043d\u0438\u0446\u044b**:\n- **\u0424\u0440\u0430\u0437\u043e\u0432\u043e\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435** (`'phrase'`): \u0418\u0449\u0435\u0442 \u0442\u043e\u0447\u043d\u044b\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u0417\u0430\u043f\u0440\u043e\u0441 `\"test carpet\"` \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u043c, \u0433\u0434\u0435 \u044d\u0442\u0438 \u0441\u043b\u043e\u0432\u0430 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0442\u0441\u044f \u0432\u043c\u0435\u0441\u0442\u0435 \u0432 \u0442\u043e\u0447\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \"test carpet cleaning\" \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442, \u0430 \"test the carpet\" \u0438\u043b\u0438 \"carpet test\" - \u043d\u0435\u0442).\n- **\u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u043f\u043e \u043c\u043e\u0434\u0435\u043b\u0438 \"\u043c\u0435\u0448\u043e\u043a \u0441\u043b\u043e\u0432\"** (`'words'`): \u0418\u0449\u0435\u0442 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0432\u0441\u0435\u0445 \u0441\u043b\u043e\u0432 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0435, \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u0417\u0430\u043f\u0440\u043e\u0441 `test carpet` \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043b\u044e\u0431\u043e\u043c\u0443 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0443, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u043c\u0443 \u043e\u0431\u0430 \u0441\u043b\u043e\u0432\u0430 \"test\" \u0438 \"carpet\" \u0433\u0434\u0435 \u0443\u0433\u043e\u0434\u043d\u043e (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \"test the carpet\", \"test red carpet\", \"carpet test\" - \u0432\u0441\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442).\n\n### \u0414\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u044f\n\n* [\u042d\u0442\u043e\u0442 \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u043a\u0443\u0440\u0441](https://play.manticoresearch.com/didyoumean/) \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 `CALL SUGGEST` \u0432 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u043c \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438.\n\n{.scale-0.5}\n\n<!-- proofread -->\n\n",
- "chinese": "\u8be5\u9009\u9879\u63a5\u53d7\u4e24\u4e2a\u503c\uff1a\n- `'phrase'` - \u6267\u884c\u7cbe\u786e\u77ed\u8bed\u641c\u7d22\u3002\u4f8b\u5982\uff0c\u5f53\u5efa\u8bae\u201c\u5e26\u6d41\u82cf\u7684\u5305\u201d\u65f6\uff0c\u5b83\u4f1a\u641c\u7d22\u7cbe\u786e\u77ed\u8bed `\"bag with tassel\"` \u5e76\u7edf\u8ba1\u5305\u542b\u8fd9\u4e9b\u8bcd\u4f5c\u4e3a\u76f8\u90bb\u77ed\u8bed\u7684\u6587\u6863\u6570\u91cf\u3002\n- `'words'` - \u6267\u884c\u8bcd\u888b\u641c\u7d22\u3002\u4f8b\u5982\uff0c\u5f53\u5efa\u8bae\u201c\u5e26\u6d41\u82cf\u7684\u5305\u201d\u65f6\uff0c\u5b83\u4f1a\u641c\u7d22 `bag with tassel`\uff08\u4e0d\u5e26\u5f15\u53f7\uff09\uff0c\u5e76\u7edf\u8ba1\u5305\u542b\u6240\u6709\u8fd9\u4e9b\u8bcd\u7684\u6587\u6863\u6570\u91cf\uff0c\u65e0\u8bba\u987a\u5e8f\u6216\u4e2d\u95f4\u662f\u5426\u6709\u5176\u4ed6\u8bcd\u3002\n\n> \u6ce8\u610f\uff1a\u5f53 `sentence` \u88ab\u542f\u7528\u65f6\uff08\u5373\u8f93\u5165\u5305\u542b\u591a\u4e2a\u8bcd\u65f6\uff09\uff0c`search_mode` \u9009\u9879\u624d\u8d77\u4f5c\u7528\u3002\u5bf9\u4e8e\u5355\u8bcd\u67e5\u8be2\uff0c`search_mode` \u88ab\u5ffd\u7565\u3002\n\n> \u6ce8\u610f\uff1a**\u6027\u80fd\u8003\u8651**\uff1a\u6bcf\u4e2a\u5efa\u8bae\u5019\u9009\u90fd\u4f1a\u89e6\u53d1\u4e00\u6b21\u72ec\u7acb\u7684\u641c\u7d22\u67e5\u8be2\u3002\u5982\u679c\u60a8\u9700\u8981\u8bc4\u4f30\u8bb8\u591a\u5019\u9009\uff0c\u8bf7\u8003\u8651\u4f7f\u7528\u8f83\u4f4e\u7684 `limit` \u503c\u4ee5\u51cf\u5c11\u6267\u884c\u7684\u641c\u7d22\u6b21\u6570\u3002\n\n\u5f53\u542f\u7528 `search_mode` \u65f6\uff0c\u7ed3\u679c\u4f1a\u5305\u542b\u4e00\u4e2a `found_docs` \u5217\uff0c\u663e\u793a\u6bcf\u4e2a\u5efa\u8bae\u7684\u6587\u6863\u6570\u91cf\uff0c\u5e76\u6309 `found_docs` \u964d\u5e8f\u91cd\u65b0\u6392\u5e8f\uff0c\u7136\u540e\u6309 `distance` \u5347\u5e8f\u6392\u5e8f\u3002\n\n<!-- intro -->\n##### \u5e26\u77ed\u8bed\u5339\u914d\u7684\u793a\u4f8b\uff1a\n\n<!-- request Example -->\n\nCODE_BLOCK_23\n\n<!-- response Example -->\n\nCODE_BLOCK_24\n\n<!-- end -->\n\n<!-- intro -->\n##### \u6bd4\u8f83\u77ed\u8bed\u4e0e\u8bcd\u888b\u5339\u914d\u7684\u793a\u4f8b\uff1a\n\n<!-- request Example -->\n\nCODE_BLOCK_25\n\n<!-- response Example -->\n\nCODE_BLOCK_26\n\n<!-- end -->\n\n**\u7406\u89e3\u5dee\u5f02**\uff1a\n- **\u77ed\u8bed\u5339\u914d** (`'phrase'`)\uff1a\u641c\u7d22\u7cbe\u786e\u5e8f\u5217\u3002\u67e5\u8be2 `\"test carpet\"` \u4ec5\u5339\u914d\u5305\u542b\u8fd9\u4e9b\u8bcd\u6309\u6b64\u7cbe\u786e\u987a\u5e8f\u51fa\u73b0\u7684\u6587\u6863\uff08\u4f8b\u5982\uff0c\u201ctest carpet cleaning\u201d\u5339\u914d\uff0c\u4f46\u201ctest the carpet\u201d\u6216\u201ccarpet test\u201d\u4e0d\u5339\u914d\uff09\u3002\n- **\u8bcd\u888b\u5339\u914d** (`'words'`)\uff1a\u641c\u7d22\u6587\u6863\u4e2d\u5305\u542b\u6240\u6709\u8bcd\uff0c\u987a\u5e8f\u65e0\u5173\u3002\u67e5\u8be2 `test carpet` \u5339\u914d\u4efb\u4f55\u5305\u542b\u201ctest\u201d\u548c\u201ccarpet\u201d\u7684\u6587\u6863\uff08\u4f8b\u5982\uff0c\u201ctest the carpet\u201d\u3001\u201ctest red carpet\u201d\u3001\u201ccarpet test\u201d\u5747\u5339\u914d\uff09\u3002\n\n### \u793a\u4f8b\u6f14\u793a\n\n* [\u8fd9\u4e2a\u4ea4\u4e92\u5f0f\u8bfe\u7a0b](https://play.manticoresearch.com/didyoumean/) \u5c55\u793a\u4e86 `CALL SUGGEST` \u5728\u5c0f\u578b\u7f51\u7edc\u5e94\u7528\u4e2d\u7684\u5de5\u4f5c\u65b9\u5f0f\u3002\n\n{.scale-0.5}\n\n<!-- proofread -->\n\n"
- },
- "is_code_or_comment": false,
- "model": "qwen/qwen3-14b",
- "updated_at": 1767381498
- },
- "bdfd707fb8a208ea9abd3412e0e5d56a231015b0df6c419347b0972319f6ca21": {
- "original": "* <a href=\"https://github.manticoresearch.com/manticoresoftware/manticoresearch?query=fature&filters%5Bcomment%5D%5B%5D=28798446&filters%5Bcommon%5D%5Brepo_id%5D%5B%5D=95614931&sort=&search=keyword-search-fuzzy-layouts\">This demo</a> demonstrates the fuzzy search functionality:\n {.scale-0.7}\n* Blog post about Fuzzy Search and Autocomplete - https://manticoresearch.com/blog/new-fuzzy-search-and-autocomplete/\n\n## CALL QSUGGEST, CALL SUGGEST\n\nBoth commands are accessible via SQL and support querying both local (plain and real-time) and distributed tables. The syntax is as follows:\nCODE_BLOCK_9\n\nThese commands provide all suggestions from the dictionary for a given word. They work only on tables with [infixing](../Creating_a_table/NLP_and_tokenization/Wildcard_searching_settings.md#min_infix_len) enabled and [dict=keywords](../Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#dict). They return the suggested keywords, Levenshtein distance between the suggested and original keywords, and the document statistics of the suggested keyword.\n\nIf the first parameter contains multiple words, then:\n* `CALL QSUGGEST` will return suggestions only for the **last** word, ignoring the rest.\n* `CALL SUGGEST` will return suggestions only for the **first** word.\n\nThat's the only difference between them. Several options are supported for customization:\n\n| Option | Description | Default |\n| - | - | - |\n| limit | Returns N top matches | 5 |\n| max_edits | Keeps only dictionary words with a Levenshtein distance less than or equal to N | 4 |\n| result_stats | Provides Levenshtein distance and document count of the found words | 1 (enabled) |\n| delta_len | Keeps only dictionary words with a length difference less than N | 3 |\n| max_matches | Number of matches to keep | 25 |\n| reject | Rejected words are matches that are not better than those already in the match queue. They are put in a rejected queue that gets reset in case one actually can go in the match queue. This parameter defines the size of the rejected queue (as reject*max(max_matched,limit)). If the rejected queue is filled, the engine stops looking for potential matches | 4 |\n| result_line | alternate mode to display the data by returning all suggests, distances and docs each per one row | 0 |\n| non_char | do not skip dictionary words with non alphabet symbols | 0 (skip such words) |\n| sentence | Returns the original sentence along with the last word replaced by the matched one. | 0 (do not return the full sentence) |\n| force_bigrams | Forces the use of bigrams (2-character n-grams) instead of trigrams for all word lengths, which can improve matching for words with transposition errors | 0 (use trigrams for words \u22656 characters) |\n| search_mode | Refines suggestions by performing searches on the index. Accepts `'phrase'` for exact phrase matching or `'words'` for bag-of-words matching. When enabled, adds a `found_docs` column showing document counts and re-ranks results by `found_docs` descending, then by `distance` ascending. | N/A (disabled by default) |\n\nTo show how it works, let's create a table and add a few documents to it.\n\nCODE_BLOCK_10\n<!-- example single -->\n##### Single word example\nAs you can see, the mistyped word \"crossb**U**dy\" gets corrected to \"crossbody\". By default, `CALL SUGGEST/QSUGGEST` return:\n\n* `distance` - the Levenshtein distance which means how many edits they had to make to convert the given word to the suggestion\n* `docs` - number of documents containing the suggested word\n\nTo disable the display of these statistics, you can use the option `0 as result_stats`.\n\n<!-- intro -->\n##### Example:\n\n<!-- request Example -->\n\nCODE_BLOCK_11\n<!-- response Example -->\n\nCODE_BLOCK_12\n<!-- end -->\n<!-- example first -->\n##### CALL SUGGEST takes only the first word\nIf the first parameter is not a single word, but multiple, then `CALL SUGGEST` will return suggestions only for the first word.\n\n<!-- intro -->\n##### Example:\n\n<!-- request Example -->\n\nCODE_BLOCK_13\n<!-- response Example -->\n\nCODE_BLOCK_14\n<!-- end -->\n<!-- example last -->\n##### CALL QSUGGEST takes only the last word\nIf the first parameter is not a single word, but multiple, then `CALL SUGGEST` will return suggestions only for the last word.\n\n<!-- intro -->\n##### Example:\n\n<!-- request Example -->\n\nCODE_BLOCK_15\n<!-- response Example -->\n\nCODE_BLOCK_16\n<!-- end -->\n\n<!-- example last2 -->\n\nAdding `1 as sentence` makes `CALL QSUGGEST` return the entire sentence with the last word corrected.\n\n<!-- request Example -->\nCODE_BLOCK_17\n<!-- response Example -->\nCODE_BLOCK_18\n<!-- end -->\n\n##### Different display mode\nThe `1 as result_line` option changes the way the suggestions are displayed in the output. Instead of showing each suggestion in a separate row, it displays all suggestions, distances, and docs in a single row. Here's an example to demonstrate this:\n\n<!-- intro -->\n##### Example:\n\n<!-- request Example -->\n\nCODE_BLOCK_19\n<!-- response Example -->\n\nCODE_BLOCK_20\n<!-- end -->\n\n##### Using force_bigrams for better transposition handling\nThe `force_bigrams` option can help with words that have transposition errors, such as \"ipohne\" vs \"iphone\". By using bigrams instead of trigrams, the algorithm can better handle character transpositions.\n\n<!-- intro -->\n##### Example:\n\n<!-- request Example -->\n\nCODE_BLOCK_21\n<!-- response Example -->\n\nCODE_BLOCK_22\n<!-- end -->\n\n##### Refining suggestions with search_mode\nThe `search_mode` option enhances suggestions by performing actual searches on the index to count how many documents contain each suggested phrase or combination of words. This helps rank suggestions based on real document relevance rather than just dictionary statistics.",
- "translations": {
- "russian": "* <a href=\"https://github.manticoresearch.com/manticoresoftware/manticoresearch?query=fature&filters%5Bcomment%5D%5B%5D=28798446&filters%5Bcommon%5D%5Brepo_id%5D%5B%5D=95614931&sort=&search=keyword-search-fuzzy-layouts\">\u042d\u0442\u043e \u0434\u0435\u043c\u043e</a> \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043d\u0435\u0447\u0451\u0442\u043a\u043e\u0433\u043e \u043f\u043e\u0438\u0441\u043a\u0430:\n {.scale-0.7}\n* \u041f\u043e\u0441\u0442 \u0432 \u0431\u043b\u043e\u0433\u0435 \u043e \u041d\u0435\u0447\u0451\u0442\u043a\u043e\u043c \u043f\u043e\u0438\u0441\u043a\u0435 \u0438 \u0430\u0432\u0442\u043e\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 - https://manticoresearch.com/blog/new-fuzzy-search-and-autocomplete/\n\n## CALL QSUGGEST, CALL SUGGEST\n\n\u041e\u0431\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0447\u0435\u0440\u0435\u0437 SQL \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043a \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u043c (plain \u0438 real-time) \u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u043c. \u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439:\nCODE_BLOCK_9\n\n\u042d\u0442\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0432\u0441\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438\u0437 \u0441\u043b\u043e\u0432\u0430\u0440\u044f \u0434\u043b\u044f \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430. \u041e\u043d\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u043c\u0438, \u0443 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043e [\u0438\u043d\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435](../Creating_a_table/NLP_and_tokenization/Wildcard_searching_settings.md#min_infix_len) \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f [dict=keywords](../Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#dict). \u041e\u043d\u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0442 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c\u044b\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0441\u043b\u043e\u0432\u0430, \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u041b\u0435\u0432\u0435\u043d\u0448\u0442\u0435\u0439\u043d\u0430 \u043c\u0435\u0436\u0434\u0443 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u043c \u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c \u0441\u043b\u043e\u0432\u043e\u043c, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043f\u043e \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u043c\u0443 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u043c\u0443 \u0441\u043b\u043e\u0432\u0443.\n\n\u0415\u0441\u043b\u0438 \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u043e\u0432, \u0442\u043e:\n* `CALL QSUGGEST` \u0432\u0435\u0440\u043d\u0451\u0442 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f **\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e** \u0441\u043b\u043e\u0432\u0430, \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u044f \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435.\n* `CALL SUGGEST` \u0432\u0435\u0440\u043d\u0451\u0442 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f **\u043f\u0435\u0440\u0432\u043e\u0433\u043e** \u0441\u043b\u043e\u0432\u0430.\n\n\u042d\u0442\u043e \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438. \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u043f\u0446\u0438\u0439 \u0434\u043b\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438:\n\n| \u041e\u043f\u0446\u0438\u044f | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 | \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e |\n| - | - | - |\n| limit | \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 N \u043b\u0443\u0447\u0448\u0438\u0445 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0439 | 5 |\n| max_edits | \u041e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u043e\u0432\u0430 \u0438\u0437 \u0441\u043b\u043e\u0432\u0430\u0440\u044f \u0441 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u043c \u041b\u0435\u0432\u0435\u043d\u0448\u0442\u0435\u0439\u043d\u0430 \u043c\u0435\u043d\u044c\u0448\u0435 \u0438\u043b\u0438 \u0440\u0430\u0432\u043d\u044b\u043c N | 4 |\n| result_stats | \u041f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u041b\u0435\u0432\u0435\u043d\u0448\u0442\u0435\u0439\u043d\u0430 \u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0445 \u0441\u043b\u043e\u0432 | 1 (\u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043e) |\n| delta_len | \u041e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u043e\u0432\u0430 \u0438\u0437 \u0441\u043b\u043e\u0432\u0430\u0440\u044f \u0441 \u0440\u0430\u0437\u043d\u0438\u0446\u0435\u0439 \u0432 \u0434\u043b\u0438\u043d\u0435 \u043c\u0435\u043d\u044c\u0448\u0435 N | 3 |\n| max_matches | \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0439 \u0434\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f | 25 |\n| reject | \u041e\u0442\u043a\u043b\u043e\u043d\u0451\u043d\u043d\u044b\u0435 \u0441\u043b\u043e\u0432\u0430 \u2014 \u044d\u0442\u043e \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u043b\u0443\u0447\u0448\u0435 \u0443\u0436\u0435 \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0438\u0445\u0441\u044f \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0439. \u041e\u043d\u0438 \u043f\u043e\u043c\u0435\u0449\u0430\u044e\u0442\u0441\u044f \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043e\u0442\u043a\u043b\u043e\u043d\u0451\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0435\u0441\u043b\u0438 \u0441\u043b\u043e\u0432\u043e \u0432\u0441\u0451 \u0436\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043f\u0430\u0441\u0442\u044c \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0439. \u042d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u043e\u0442\u043a\u043b\u043e\u043d\u0451\u043d\u043d\u044b\u0445 (\u043a\u0430\u043a reject*max(max_matched,limit)). \u0415\u0441\u043b\u0438 \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043e\u0442\u043a\u043b\u043e\u043d\u0451\u043d\u043d\u044b\u0445 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0430, \u0434\u0432\u0438\u0436\u043e\u043a \u043f\u0440\u0435\u043a\u0440\u0430\u0449\u0430\u0435\u0442 \u043f\u043e\u0438\u0441\u043a \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0439 | 4 |\n| result_line | \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0438\u0439 \u0432\u0441\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043a\u0430\u0436\u0434\u043e\u0435 \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 | 0 |\n| non_char | \u043d\u0435 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0441\u043b\u043e\u0432\u0430 \u0438\u0437 \u0441\u043b\u043e\u0432\u0430\u0440\u044f \u0441 \u043d\u0435\u0430\u043b\u0444\u0430\u0432\u0438\u0442\u043d\u044b\u043c\u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c\u0438 | 0 (\u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u0441\u043b\u043e\u0432\u0430) |\n| sentence | \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441 \u0437\u0430\u043c\u0435\u043d\u043e\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0441\u043b\u043e\u0432\u0430 \u043d\u0430 \u043f\u043e\u0434\u043e\u0431\u0440\u0430\u043d\u043d\u043e\u0435. | 0 (\u043d\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435) |\n| force_bigrams | \u041f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0431\u0438\u0433\u0440\u0430\u043c\u043c\u044b (n-\u0433\u0440\u0430\u043c\u043c\u044b \u0438\u0437 2 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432) \u0432\u043c\u0435\u0441\u0442\u043e \u0442\u0440\u0438\u0433\u0440\u0430\u043c\u043c \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0434\u043b\u0438\u043d \u0441\u043b\u043e\u0432, \u0447\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0441\u043b\u043e\u0432 \u0441 \u043e\u0448\u0438\u0431\u043a\u0430\u043c\u0438 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0437\u0438\u0446\u0438\u0438 | 0 (\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0440\u0438\u0433\u0440\u0430\u043c\u043c\u044b \u0434\u043b\u044f \u0441\u043b\u043e\u0432 \u22656 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432) |\n| search_mode | \u0423\u0442\u043e\u0447\u043d\u044f\u0435\u0442 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044f \u043f\u043e\u0438\u0441\u043a \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443. \u041f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 `'phrase'` \u0434\u043b\u044f \u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f \u0444\u0440\u0430\u0437\u044b \u0438\u043b\u0438 `'words'` \u0434\u043b\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f \u043f\u043e \u043c\u043e\u0434\u0435\u043b\u0438 \"\u043c\u0435\u0448\u043e\u043a \u0441\u043b\u043e\u0432\". \u041f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 `found_docs`, \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0449\u0438\u0439 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u0438 \u043f\u0435\u0440\u0435\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u044b\u0432\u0430\u0435\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u043e \u0443\u0431\u044b\u0432\u0430\u043d\u0438\u044e `found_docs`, \u0437\u0430\u0442\u0435\u043c \u043f\u043e \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430\u043d\u0438\u044e `distance`. | N/A (\u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043e \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e) |\n\n\u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c, \u043a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0432 \u043d\u0435\u0451 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432.\n\nCODE_BLOCK_10\n<!-- example single -->\n##### \u041f\u0440\u0438\u043c\u0435\u0440 \u0441 \u043e\u0434\u043d\u0438\u043c \u0441\u043b\u043e\u0432\u043e\u043c\n\u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e, \u0441\u043b\u043e\u0432\u043e \u0441 \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u043e\u0439 \"crossb**U**dy\" \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \"crossbody\". \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e `CALL SUGGEST/QSUGGEST` \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0442:\n\n* `distance` \u2014 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u041b\u0435\u0432\u0435\u043d\u0448\u0442\u0435\u0439\u043d\u0430, \u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0449\u0435\u0435, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0430\u0432\u043e\u043a \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0435 \u0441\u043b\u043e\u0432\u043e \u0432 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0435\n* `docs` \u2014 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0445 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0435 \u0441\u043b\u043e\u0432\u043e\n\n\u0427\u0442\u043e\u0431\u044b \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438, \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u043f\u0446\u0438\u044e `0 as result_stats`.\n\n<!-- intro -->\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n<!-- request Example -->\n\nCODE_BLOCK_11\n<!-- response Example -->\n\nCODE_BLOCK_12\n<!-- end -->\n<!-- example first -->\n##### CALL SUGGEST \u0431\u0435\u0440\u0451\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0435\u0440\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e\n\u0415\u0441\u043b\u0438 \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u2014 \u043d\u0435 \u043e\u0434\u043d\u043e \u0441\u043b\u043e\u0432\u043e, \u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e, \u0442\u043e `CALL SUGGEST` \u0432\u0435\u0440\u043d\u0451\u0442 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430.\n\n<!-- intro -->\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n<!-- request Example -->\n\nCODE_BLOCK_13\n<!-- response Example -->\n\nCODE_BLOCK_14\n<!-- end -->\n<!-- example last -->\n##### CALL QSUGGEST \u0431\u0435\u0440\u0451\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0441\u043b\u043e\u0432\u043e\n\u0415\u0441\u043b\u0438 \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u2014 \u043d\u0435 \u043e\u0434\u043d\u043e \u0441\u043b\u043e\u0432\u043e, \u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e, \u0442\u043e `CALL SUGGEST` \u0432\u0435\u0440\u043d\u0451\u0442 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0441\u043b\u043e\u0432\u0430.\n\n<!-- intro -->\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n<!-- request Example -->\n\nCODE_BLOCK_15\n<!-- response Example -->\n\nCODE_BLOCK_16\n<!-- end -->\n\n<!-- example last2 -->\n\n\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 `1 as sentence` \u0437\u0430\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 `CALL QSUGGEST` \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u0432\u0441\u0451 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c \u0441\u043b\u043e\u0432\u043e\u043c.\n\n<!-- request Example -->\nCODE_BLOCK_17\n<!-- response Example -->\nCODE_BLOCK_18\n<!-- end -->\n\n##### \u0414\u0440\u0443\u0433\u043e\u0439 \u0440\u0435\u0436\u0438\u043c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\n\u041e\u043f\u0446\u0438\u044f `1 as result_line` \u043c\u0435\u043d\u044f\u0435\u0442 \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0432 \u0432\u044b\u0432\u043e\u0434\u0435. \u0412\u043c\u0435\u0441\u0442\u043e \u043f\u043e\u043a\u0430\u0437\u0430 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435, \u043e\u043d\u0430 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u0432\u0441\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435. \u0412\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u044d\u0442\u043e:\n\n<!-- intro -->\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n<!-- request Example -->\n\nCODE_BLOCK_19\n<!-- response Example -->\n\nCODE_BLOCK_20\n<!-- end -->\n\n##### \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 force_bigrams \u0434\u043b\u044f \u043b\u0443\u0447\u0448\u0435\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0437\u0438\u0446\u0438\u0439\n\u041e\u043f\u0446\u0438\u044f `force_bigrams` \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043c\u043e\u0447\u044c \u0441\u043e \u0441\u043b\u043e\u0432\u0430\u043c\u0438, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u043c\u0438 \u043e\u0448\u0438\u0431\u043a\u0438 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0437\u0438\u0446\u0438\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \"ipohne\" \u0438 \"iphone\". \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0431\u0438\u0433\u0440\u0430\u043c\u043c\u044b \u0432\u043c\u0435\u0441\u0442\u043e \u0442\u0440\u0438\u0433\u0440\u0430\u043c\u043c, \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043c\u043e\u0436\u0435\u0442 \u043b\u0443\u0447\u0448\u0435 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432.\n\n<!-- intro -->\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n<!-- request Example -->\n\nCODE_BLOCK_21\n<!-- response Example -->\n\nCODE_BLOCK_22\n<!-- end -->\n\n##### \u0423\u0442\u043e\u0447\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e search_mode\n\u041e\u043f\u0446\u0438\u044f `search_mode` \u0443\u043b\u0443\u0447\u0448\u0430\u0435\u0442 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044f \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443 \u0434\u043b\u044f \u043f\u043e\u0434\u0441\u0447\u0451\u0442\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0445 \u043a\u0430\u0436\u0434\u0443\u044e \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u0443\u044e \u0444\u0440\u0430\u0437\u0443 \u0438\u043b\u0438 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u044e \u0441\u043b\u043e\u0432. \u042d\u0442\u043e \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0440\u0430\u043d\u0436\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0440\u0435\u043b\u0435\u0432\u0430\u043d\u0442\u043d\u043e\u0441\u0442\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u0430 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438 \u0441\u043b\u043e\u0432\u0430\u0440\u044f.",
- "chinese": "* <a href=\"https://github.manticoresearch.com/manticoresoftware/manticoresearch?query=fature&filters%5Bcomment%5D%5B%5D=28798446&filters%5Bcommon%5D%5Brepo_id%5D%5B%5D=95614931&sort=&search=keyword-search-fuzzy-layouts\">\u6b64\u6f14\u793a</a> \u5c55\u793a\u4e86\u6a21\u7cca\u641c\u7d22\u529f\u80fd\uff1a\n {.scale-0.7}\n* \u5173\u4e8e\u6a21\u7cca\u641c\u7d22\u548c\u81ea\u52a8\u8865\u5168\u7684\u535a\u5ba2\u6587\u7ae0 - https://manticoresearch.com/blog/new-fuzzy-search-and-autocomplete/\n\n## \u8c03\u7528 QSUGGEST\uff0c\u8c03\u7528 SUGGEST\n\n\u8fd9\u4e24\u4e2a\u547d\u4ee4\u90fd\u53ef\u4ee5\u901a\u8fc7 SQL \u8bbf\u95ee\uff0c\u5e76\u652f\u6301\u67e5\u8be2\u672c\u5730\uff08\u666e\u901a\u548c\u5b9e\u65f6\uff09\u548c\u5206\u5e03\u5f0f\u8868\u3002\u8bed\u6cd5\u5982\u4e0b\uff1a\nCODE_BLOCK_9\n\n\u8fd9\u4e9b\u547d\u4ee4\u4e3a\u7ed9\u5b9a\u5355\u8bcd\u63d0\u4f9b\u5b57\u5178\u4e2d\u7684\u6240\u6709\u5efa\u8bae\u3002\u5b83\u4eec\u4ec5\u5728\u542f\u7528\u4e86 [\u524d\u7f00\u5339\u914d](../Creating_a_table/NLP_and_tokenization/Wildcard_searching_settings.md#min_infix_len) \u5e76\u4e14 [dict=keywords](../Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#dict) \u7684\u8868\u4e0a\u5de5\u4f5c\u3002\u5b83\u4eec\u8fd4\u56de\u5efa\u8bae\u7684\u5173\u952e\u8bcd\u3001\u5efa\u8bae\u5173\u952e\u8bcd\u4e0e\u539f\u59cb\u5173\u952e\u8bcd\u4e4b\u95f4\u7684\u83b1\u6587\u65af\u5766\u8ddd\u79bb\uff0c\u4ee5\u53ca\u5efa\u8bae\u5173\u952e\u8bcd\u7684\u6587\u6863\u7edf\u8ba1\u4fe1\u606f\u3002\n\n\u5982\u679c\u7b2c\u4e00\u4e2a\u53c2\u6570\u5305\u542b\u591a\u4e2a\u5355\u8bcd\uff0c\u5219\uff1a\n* `CALL QSUGGEST` \u5c06\u4ec5\u8fd4\u56de **\u6700\u540e\u4e00\u4e2a** \u5355\u8bcd\u7684\u5efa\u8bae\uff0c\u5ffd\u7565\u5176\u4f59\u90e8\u5206\u3002\n* `CALL SUGGEST` \u5c06\u4ec5\u8fd4\u56de **\u7b2c\u4e00\u4e2a** \u5355\u8bcd\u7684\u5efa\u8bae\u3002\n\n\u8fd9\u662f\u5b83\u4eec\u4e4b\u95f4\u552f\u4e00\u7684\u533a\u522b\u3002\u652f\u6301\u4ee5\u4e0b\u9009\u9879\u8fdb\u884c\u81ea\u5b9a\u4e49\uff1a\n\n| \u9009\u9879 | \u63cf\u8ff0 | \u9ed8\u8ba4 |\n| - | - | - |\n| limit | \u8fd4\u56de N \u4e2a\u6700\u4f73\u5339\u914d | 5 |\n| max_edits | \u4ec5\u4fdd\u7559\u4e0e\u539f\u59cb\u5173\u952e\u8bcd\u7684\u83b1\u6587\u65af\u5766\u8ddd\u79bb\u5c0f\u4e8e\u6216\u7b49\u4e8e N \u7684\u5b57\u5178\u5355\u8bcd | 4 |\n| result_stats | \u63d0\u4f9b\u627e\u5230\u7684\u5355\u8bcd\u7684\u83b1\u6587\u65af\u5766\u8ddd\u79bb\u548c\u6587\u6863\u6570\u91cf | 1\uff08\u542f\u7528\uff09 |\n| delta_len | \u4ec5\u4fdd\u7559\u4e0e\u539f\u59cb\u5355\u8bcd\u957f\u5ea6\u5dee\u5f02\u5c0f\u4e8e N \u7684\u5b57\u5178\u5355\u8bcd | 3 |\n| max_matches | \u4fdd\u7559\u7684\u5339\u914d\u6570 | 25 |\n| reject | \u88ab\u62d2\u7edd\u7684\u5355\u8bcd\u662f\u90a3\u4e9b\u4e0d\u5982\u5339\u914d\u961f\u5217\u4e2d\u5df2\u6709\u5355\u8bcd\u7684\u5339\u914d\u9879\u3002\u5b83\u4eec\u88ab\u653e\u5165\u4e00\u4e2a\u88ab\u62d2\u7edd\u961f\u5217\u4e2d\uff0c\u5982\u679c\u5176\u4e2d\u4e00\u4e2a\u5b9e\u9645\u4e0a\u53ef\u4ee5\u8fdb\u5165\u5339\u914d\u961f\u5217\uff0c\u8be5\u961f\u5217\u4f1a\u88ab\u91cd\u7f6e\u3002\u6b64\u53c2\u6570\u5b9a\u4e49\u4e86\u88ab\u62d2\u7edd\u961f\u5217\u7684\u5927\u5c0f\uff08\u4f5c\u4e3a reject*max(max_matched,limit)\uff09\u3002\u5982\u679c\u88ab\u62d2\u7edd\u961f\u5217\u5df2\u6ee1\uff0c\u5f15\u64ce\u5c06\u505c\u6b62\u5bfb\u627e\u6f5c\u5728\u5339\u914d | 4 |\n| result_line | \u901a\u8fc7\u8fd4\u56de\u6240\u6709\u5efa\u8bae\u3001\u8ddd\u79bb\u548c\u6587\u6863\u6bcf\u884c\u663e\u793a\u6570\u636e\u7684\u66ff\u4ee3\u6a21\u5f0f | 0 |\n| non_char | \u4e0d\u8df3\u8fc7\u5305\u542b\u975e\u5b57\u6bcd\u7b26\u53f7\u7684\u5b57\u5178\u5355\u8bcd | 0\uff08\u8df3\u8fc7\u6b64\u7c7b\u5355\u8bcd\uff09 |\n| sentence | \u8fd4\u56de\u539f\u59cb\u53e5\u5b50\uff0c\u540c\u65f6\u5c06\u6700\u540e\u4e00\u4e2a\u5355\u8bcd\u66ff\u6362\u4e3a\u5339\u914d\u9879 | 0\uff08\u4e0d\u8fd4\u56de\u5b8c\u6574\u53e5\u5b50\uff09 |\n| force_bigrams | \u5f3a\u5236\u4f7f\u7528\u4e8c\u5143\u7ec4\uff082\u5b57\u7b26 n-gram\uff09\u800c\u4e0d\u662f\u4e09\u5143\u7ec4\u6765\u5904\u7406\u6240\u6709\u5355\u8bcd\u957f\u5ea6\uff0c\u8fd9\u53ef\u4ee5\u6539\u5584\u5177\u6709\u6362\u4f4d\u9519\u8bef\u7684\u5355\u8bcd\u7684\u5339\u914d | 0\uff08\u5bf9\u957f\u5ea6\u22656\u7684\u5355\u8bcd\u4f7f\u7528\u4e09\u5143\u7ec4\uff09 |\n| search_mode | \u901a\u8fc7\u5728\u7d22\u5f15\u4e0a\u6267\u884c\u641c\u7d22\u6765\u7ec6\u5316\u5efa\u8bae\u3002\u63a5\u53d7 `'phrase'` \u7528\u4e8e\u7cbe\u786e\u77ed\u8bed\u5339\u914d\u6216 `'words'` \u7528\u4e8e\u8bcd\u888b\u5339\u914d\u3002\u542f\u7528\u65f6\uff0c\u6dfb\u52a0\u4e00\u4e2a `found_docs` \u5217\u663e\u793a\u6587\u6863\u6570\u91cf\uff0c\u5e76\u6309 `found_docs` \u964d\u5e8f\u3001\u7136\u540e\u6309 `distance` \u5347\u5e8f\u91cd\u65b0\u6392\u5e8f\u7ed3\u679c | N/A\uff08\u9ed8\u8ba4\u7981\u7528\uff09 |\n\n\u4e3a\u4e86\u5c55\u793a\u5176\u5de5\u4f5c\u65b9\u5f0f\uff0c\u8ba9\u6211\u4eec\u521b\u5efa\u4e00\u4e2a\u8868\u5e76\u5411\u5176\u4e2d\u6dfb\u52a0\u51e0\u4e2a\u6587\u6863\u3002\n\nCODE_BLOCK_10\n<!-- example single -->\n##### \u5355\u8bcd\u793a\u4f8b\n\u5982\u60a8\u6240\u89c1\uff0c\u62fc\u5199\u9519\u8bef\u7684\u5355\u8bcd \"crossb**U**dy\" \u4f1a\u88ab\u66f4\u6b63\u4e3a \"crossbody\"\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c`CALL SUGGEST/QSUGGEST` \u8fd4\u56de\uff1a\n\n* `distance` - \u83b1\u6587\u65af\u5766\u8ddd\u79bb\uff0c\u8868\u793a\u5c06\u7ed9\u5b9a\u5355\u8bcd\u8f6c\u6362\u4e3a\u5efa\u8bae\u6240\u9700\u8fdb\u884c\u7684\u7f16\u8f91\u6b21\u6570\n* `docs` - \u5305\u542b\u5efa\u8bae\u5355\u8bcd\u7684\u6587\u6863\u6570\u91cf\n\n\u8981\u7981\u7528\u8fd9\u4e9b\u7edf\u8ba1\u4fe1\u606f\u7684\u663e\u793a\uff0c\u53ef\u4ee5\u4f7f\u7528\u9009\u9879 `0 as result_stats`\u3002\n\n<!-- intro -->\n##### \u793a\u4f8b\uff1a\n\n<!-- request Example -->\n\nCODE_BLOCK_11\n<!-- response Example -->\n\nCODE_BLOCK_12\n<!-- end -->\n<!-- example first -->\n##### CALL SUGGEST \u4ec5\u53d6\u7b2c\u4e00\u4e2a\u5355\u8bcd\n\u5982\u679c\u7b2c\u4e00\u4e2a\u53c2\u6570\u4e0d\u662f\u5355\u4e2a\u5355\u8bcd\uff0c\u800c\u662f\u591a\u4e2a\u5355\u8bcd\uff0c\u5219 `CALL SUGGEST` \u5c06\u4ec5\u8fd4\u56de\u7b2c\u4e00\u4e2a\u5355\u8bcd\u7684\u5efa\u8bae\u3002\n\n<!-- intro -->\n##### \u793a\u4f8b\uff1a\n\n<!-- request Example -->\n\nCODE_BLOCK_13\n<!-- response Example -->\n\nCODE_BLOCK_14\n<!-- end -->\n<!-- example last -->\n##### CALL QSUGGEST \u4ec5\u53d6\u6700\u540e\u4e00\u4e2a\u5355\u8bcd\n\u5982\u679c\u7b2c\u4e00\u4e2a\u53c2\u6570\u4e0d\u662f\u5355\u4e2a\u5355\u8bcd\uff0c\u800c\u662f\u591a\u4e2a\u5355\u8bcd\uff0c\u5219 `CALL SUGGEST` \u5c06\u4ec5\u8fd4\u56de\u6700\u540e\u4e00\u4e2a\u5355\u8bcd\u7684\u5efa\u8bae\u3002\n\n<!-- intro -->\n##### \u793a\u4f8b\uff1a\n\n<!-- request Example -->\n\nCODE_BLOCK_15\n<!-- response Example -->\n\nCODE_BLOCK_16\n<!-- end -->\n\n<!-- example last2 -->\n\n\u6dfb\u52a0 `1 as sentence` \u4f1a\u4f7f `CALL QSUGGEST` \u8fd4\u56de\u6574\u4e2a\u53e5\u5b50\uff0c\u5176\u4e2d\u6700\u540e\u4e00\u4e2a\u5355\u8bcd\u88ab\u66f4\u6b63\u3002\n\n<!-- request Example -->\nCODE_BLOCK_17\n<!-- response Example -->\nCODE_BLOCK_18\n<!-- end -->\n\n##### \u4e0d\u540c\u7684\u663e\u793a\u6a21\u5f0f\n`1 as result_line` \u9009\u9879\u4f1a\u6539\u53d8\u5efa\u8bae\u5728\u8f93\u51fa\u4e2d\u7684\u663e\u793a\u65b9\u5f0f\u3002\u4e0e\u5176\u5728\u5355\u72ec\u7684\u884c\u4e2d\u663e\u793a\u6bcf\u4e2a\u5efa\u8bae\uff0c\u5b83\u4f1a\u5728\u5355\u884c\u4e2d\u663e\u793a\u6240\u6709\u5efa\u8bae\u3001\u8ddd\u79bb\u548c\u6587\u6863\u3002\u4ee5\u4e0b\u662f\u4e00\u4e2a\u793a\u4f8b\u6765\u6f14\u793a\u8fd9\u4e00\u70b9\uff1a\n\n<!-- intro -->\n##### \u793a\u4f8b\uff1a\n\n<!-- request Example -->\n\nCODE_BLOCK_19\n<!-- response Example -->\n\nCODE_BLOCK_20\n<!-- end -->\n\n##### \u4f7f\u7528 force_bigrams \u4ee5\u66f4\u597d\u5730\u5904\u7406\u6362\u4f4d\u9519\u8bef\n`force_bigrams` \u9009\u9879\u53ef\u4ee5\u5e2e\u52a9\u5904\u7406\u5177\u6709\u6362\u4f4d\u9519\u8bef\u7684\u5355\u8bcd\uff0c\u4f8b\u5982 \"ipohne\" \u4e0e \"iphone\"\u3002\u901a\u8fc7\u4f7f\u7528\u4e8c\u5143\u7ec4\u800c\u4e0d\u662f\u4e09\u5143\u7ec4\uff0c\u7b97\u6cd5\u53ef\u4ee5\u66f4\u597d\u5730\u5904\u7406\u5b57\u7b26\u6362\u4f4d\u3002\n\n<!-- intro -->\n##### \u793a\u4f8b\uff1a\n\n<!-- request Example -->\n\nCODE_BLOCK_21\n<!-- response Example -->\n\nCODE_BLOCK_22\n<!-- end -->\n\n##### \u4f7f\u7528 search_mode \u4f18\u5316\u5efa\u8bae\n`search_mode` \u9009\u9879\u901a\u8fc7\u5728\u7d22\u5f15\u4e0a\u6267\u884c\u5b9e\u9645\u641c\u7d22\u6765\u589e\u5f3a\u5efa\u8bae\uff0c\u4ee5\u8ba1\u7b97\u6bcf\u4e2a\u5efa\u8bae\u77ed\u8bed\u6216\u5355\u8bcd\u7ec4\u5408\u5305\u542b\u591a\u5c11\u6587\u6863\u3002\u8fd9\u6709\u52a9\u4e8e\u6839\u636e\u5b9e\u9645\u6587\u6863\u7684\u76f8\u5173\u6027\u800c\u4e0d\u662f\u4ec5\u5b57\u5178\u7edf\u8ba1\u4fe1\u606f\u5bf9\u5efa\u8bae\u8fdb\u884c\u6392\u5e8f\u3002"
- },
- "is_code_or_comment": false,
- "model": "qwen/qwen3-14b",
- "updated_at": 1767381713
- },
- "__meta": {
- "source_text": "# Spell correction\n\nSpell correction, also known as:\n\n* Auto correction\n* Text correction\n* Fixing spelling errors\n* Typo tolerance\n* \"Did you mean?\"\n\nand so on, is a software functionality that suggests alternatives to or makes automatic corrections of the text you have typed in. The concept of correcting typed text dates back to the 1960s when computer scientist Warren Teitelman, who also invented the \"undo\" command, introduced a philosophy of computing called D.W.I.M., or \"Do What I Mean.\" Instead of programming computers to accept only perfectly formatted instructions, Teitelman argued that they should be programmed to recognize obvious mistakes.\n\nThe first well-known product to provide spell correction functionality was Microsoft Word 6.0, released in 1993.\n\n### How it works\n\nThere are a few ways spell correction can be done, but it's important to note that there is no purely programmatic way to convert your mistyped \"ipone\" into \"iphone\" with decent quality. Mostly, there has to be a dataset the system is based on. The dataset can be:\n\n* A dictionary of properly spelled words, which in turn can be:\n * Based on your real data. The idea here is that, for the most part, the spelling in the dictionary made up of your data is correct, and the system tries to find a word that is most similar to the typed word (we'll discuss how this can be done with Manticore shortly).\n * Or it can be based on an external dictionary unrelated to your data. The issue that may arise here is that your data and the external dictionary can be too different: some words may be missing in the dictionary, while others may be missing in your data.\n* Not just dictionary-based, but also context-aware, e.g., \"white ber\" would be corrected to \"white bear,\" while \"dark ber\" would be corrected to \"dark beer.\" The context might not just be a neighboring word in your query, but also your location, time of day, the current sentence's grammar (to change \"there\" to \"their\" or not), your search history, and virtually any other factors that can affect your intent.\n* Another classic approach is to use previous search queries as the dataset for spell correction. This is even more utilized in [autocomplete](../Searching/Autocomplete.md) functionality but makes sense for autocorrect too. The idea is that users are mostly right with spelling, so we can use words from their search history as a source of truth, even if we don't have the words in our documents or use an external dictionary. Context-awareness is also possible here.\n\nManticore provides the fuzzy search option and the commands `CALL QSUGGEST` and `CALL SUGGEST` that can be used for automatic spell correction purposes.\n\n## Fuzzy Search\n\nThe Fuzzy Search feature allows for more flexible matching by accounting for slight variations or misspellings in the search query. It works similarly to a normal `SELECT` SQL statement or a `/search` JSON request but provides additional parameters to control the fuzzy matching behavior.\n\n> NOTE: The `fuzzy` option requires [Manticore Buddy](../Installation/Manticore_Buddy.md). If it doesn't work, make sure Buddy is installed.\n\n> NOTE: The `fuzzy` option is not available for [multi-queries](../Searching/Multi-queries.md).\n\n## General syntax\n\n### SQL\n\n<!-- example Fuzzy_Search_SQL -->\n\n```sql\nSELECT\n ...\n MATCH('...')\n ...\n OPTION fuzzy={0|1}\n [, distance=N]\n [, preserve={0|1}]\n [, layouts='{be,bg,br,ch,de,dk,es,fr,uk,gr,it,no,pt,ru,se,ua,us}']\n}\n```\n\nNote: When conducting a fuzzy search via SQL, the MATCH clause should not contain any full-text operators except the [phrase search operator](../Searching/Full_text_matching/Operators.md#Phrase-search-operator) and should only include the words you intend to match.\n\n<!-- intro -->\n##### SQL:\n\n<!-- request SQL -->\n\n```sql\nSELECT * FROM mytable WHERE MATCH('someting') OPTION fuzzy=1, layouts='us,ua', distance=2;\n```\n\n<!-- request SQL with additional filters -->\nExample of a more complex Fuzzy search query with additional filters:\n\n```sql\nSELECT * FROM mytable WHERE MATCH('someting') OPTION fuzzy=1 AND (category='books' AND price < 20);\n```\n\n<!-- request JSON -->\n\n```json\nPOST /search\n{\n \"table\": \"test\",\n \"query\": {\n \"bool\": {\n \"must\": [\n {\n \"match\": {\n \"*\": \"ghbdtn\"\n }\n }\n ]\n }\n },\n \"options\": {\n \"fuzzy\": true,\n \"layouts\": [\"us\", \"ru\"],\n \"distance\": 2\n }\n}\n```\n\n<!-- response SQL -->\n\n```sql\n+------+-------------+\n| id | content |\n+------+-------------+\n| 1 | something |\n| 2 | some thing |\n+------+-------------+\n2 rows in set (0.00 sec)\n```\n\n<!-- request SQL with preserve option -->\n\n```sql\nSELECT * FROM mytable WHERE MATCH('hello wrld') OPTION fuzzy=1, preserve=1;\n```\n\n<!-- request JSON with preserve option -->\n\n```json\nPOST /search\n{\n \"table\": \"test\",\n \"query\": {\n \"bool\": {\n \"must\": [\n {\n \"match\": {\n \"*\": \"hello wrld\"\n }\n }\n ]\n }\n },\n \"options\": {\n \"fuzzy\": true,\n \"preserve\": 1\n }\n}\n```\n\n<!-- response SQL with preserve option -->\n\n```sql\n+------+-------------+\n| id | content |\n+------+-------------+\n| 1 | hello wrld |\n| 2 | hello world |\n+------+-------------+\n2 rows in set (0.00 sec)\n```\n\n<!-- end -->\n\n### JSON\n\n```json\nPOST /search\n{\n \"table\": \"table_name\",\n \"query\": {\n <full-text query>\n },\n \"options\": {\n \"fuzzy\": {true|false}\n [,\"layouts\": [\"be\",\"bg\",\"br\",\"ch\",\"de\",\"dk\",\"es\",\"fr\",\"uk\",\"gr\",\"it\",\"no\",\"pt\",\"ru\",\"se\",\"ua\",\"us\"]]\n [,\"distance\": N]\n [,\"preserve\": {0|1}]\n }\n}\n```\n\nNote: If you use the [query_string](../Searching/Full_text_matching/Basic_usage.md#query_string), be aware that it does not support full-text operators except the [phrase search operator](../Searching/Full_text_matching/Operators.md#Phrase-search-operator). The query string should consist solely of the words you wish to match.\n\n### Options\n\n- `fuzzy`: Turn fuzzy search on or off.\n- `distance`: Set the Levenshtein distance for matching. The default is `2`.\n- `preserve`: `0` or `1` (default: `0`). When set to `1`, keeps words that don't have fuzzy matches in the search results (e.g., \"hello wrld\" returns both \"hello wrld\" and \"hello world\"). When set to `0`, only returns words with successful fuzzy matches (e.g., \"hello wrld\" returns only \"hello world\"). Particularly useful for preserving short words or proper nouns that may not exist in Manticore Search.\n- `layouts`: Keyboard layouts for detecting typing errors caused by keyboard layout mismatches (e.g., typing \"ghbdtn\" instead of \"\u043f\u0440\u0438\u0432\u0435\u0442\" when using wrong layout). Manticore compares character positions across different layouts to suggest corrections. Requires at least 2 layouts to effectively detect mismatches. No layouts are used by default. Use an empty string `''` (SQL) or array `[]` (JSON) to turn this off. Supported layouts include:\n - `be` - Belgian AZERTY layout\n - `bg` - Standard Bulgarian layout\n - `br` - Brazilian QWERTY layout\n - `ch` - Swiss QWERTZ layout\n - `de` - German QWERTZ layout\n - `dk` - Danish QWERTY layout\n - `es` - Spanish QWERTY layout\n - `fr` - French AZERTY layout\n - `uk` - British QWERTY layout\n - `gr` - Greek QWERTY layout\n - `it` - Italian QWERTY layout\n - `no` - Norwegian QWERTY layout\n - `pt` - Portuguese QWERTY layout\n - `ru` - Russian JCUKEN layout\n - `se` - Swedish QWERTY layout\n - `ua` - Ukrainian JCUKEN layout\n - `us` - American QWERTY layout\n\n\n### Links\n\n* <a href=\"https://github.manticoresearch.com/manticoresoftware/manticoresearch?query=fature&filters%5Bcomment%5D%5B%5D=28798446&filters%5Bcommon%5D%5Brepo_id%5D%5B%5D=95614931&sort=&search=keyword-search-fuzzy-layouts\">This demo</a> demonstrates the fuzzy search functionality:\n {.scale-0.7}\n* Blog post about Fuzzy Search and Autocomplete - https://manticoresearch.com/blog/new-fuzzy-search-and-autocomplete/\n\n## CALL QSUGGEST, CALL SUGGEST\n\nBoth commands are accessible via SQL and support querying both local (plain and real-time) and distributed tables. The syntax is as follows:\n```sql\nCALL QSUGGEST(<word or words>, <table name> [,options])\nCALL SUGGEST(<word or words>, <table name> [,options])\n\noptions: N as option_name[, M as another_option, ...]\n```\n\nThese commands provide all suggestions from the dictionary for a given word. They work only on tables with [infixing](../Creating_a_table/NLP_and_tokenization/Wildcard_searching_settings.md#min_infix_len) enabled and [dict=keywords](../Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#dict). They return the suggested keywords, Levenshtein distance between the suggested and original keywords, and the document statistics of the suggested keyword.\n\nIf the first parameter contains multiple words, then:\n* `CALL QSUGGEST` will return suggestions only for the **last** word, ignoring the rest.\n* `CALL SUGGEST` will return suggestions only for the **first** word.\n\nThat's the only difference between them. Several options are supported for customization:\n\n| Option | Description | Default |\n| - | - | - |\n| limit | Returns N top matches | 5 |\n| max_edits | Keeps only dictionary words with a Levenshtein distance less than or equal to N | 4 |\n| result_stats | Provides Levenshtein distance and document count of the found words | 1 (enabled) |\n| delta_len | Keeps only dictionary words with a length difference less than N | 3 |\n| max_matches | Number of matches to keep | 25 |\n| reject | Rejected words are matches that are not better than those already in the match queue. They are put in a rejected queue that gets reset in case one actually can go in the match queue. This parameter defines the size of the rejected queue (as reject*max(max_matched,limit)). If the rejected queue is filled, the engine stops looking for potential matches | 4 |\n| result_line | alternate mode to display the data by returning all suggests, distances and docs each per one row | 0 |\n| non_char | do not skip dictionary words with non alphabet symbols | 0 (skip such words) |\n| sentence | Returns the original sentence along with the last word replaced by the matched one. | 0 (do not return the full sentence) |\n| force_bigrams | Forces the use of bigrams (2-character n-grams) instead of trigrams for all word lengths, which can improve matching for words with transposition errors | 0 (use trigrams for words \u22656 characters) |\n| search_mode | Refines suggestions by performing searches on the index. Accepts `'phrase'` for exact phrase matching or `'words'` for bag-of-words matching. When enabled, adds a `found_docs` column showing document counts and re-ranks results by `found_docs` descending, then by `distance` ascending. | N/A (disabled by default) |\n\nTo show how it works, let's create a table and add a few documents to it.\n\n```sql\ncreate table products(title text) min_infix_len='2';\ninsert into products values (0,'Crossbody Bag with Tassel'), (0,'microfiber sheet set'), (0,'Pet Hair Remover Glove');\n```\n<!-- example single -->\n##### Single word example\nAs you can see, the mistyped word \"crossb**U**dy\" gets corrected to \"crossbody\". By default, `CALL SUGGEST/QSUGGEST` return:\n\n* `distance` - the Levenshtein distance which means how many edits they had to make to convert the given word to the suggestion\n* `docs` - number of documents containing the suggested word\n\nTo disable the display of these statistics, you can use the option `0 as result_stats`.\n\n\n<!-- intro -->\n##### Example:\n\n<!-- request Example -->\n\n```sql\ncall suggest('crossbudy', 'products');\n```\n<!-- response Example -->\n\n```sql\n+-----------+----------+------+\n| suggest | distance | docs |\n+-----------+----------+------+\n| crossbody | 1 | 1 |\n+-----------+----------+------+\n```\n<!-- end -->\n<!-- example first -->\n##### CALL SUGGEST takes only the first word\nIf the first parameter is not a single word, but multiple, then `CALL SUGGEST` will return suggestions only for the first word.\n\n\n<!-- intro -->\n##### Example:\n\n<!-- request Example -->\n\n```sql\ncall suggest('bagg with tasel', 'products');\n```\n<!-- response Example -->\n\n```sql\n+---------+----------+------+\n| suggest | distance | docs |\n+---------+----------+------+\n| bag | 1 | 1 |\n+---------+----------+------+\n```\n<!-- end -->\n<!-- example last -->\n##### CALL QSUGGEST takes only the last word\nIf the first parameter is not a single word, but multiple, then `CALL SUGGEST` will return suggestions only for the last word.\n\n\n<!-- intro -->\n##### Example:\n\n<!-- request Example -->\n\n```sql\nCALL QSUGGEST('bagg with tasel', 'products');\n```\n<!-- response Example -->\n\n```sql\n+---------+----------+------+\n| suggest | distance | docs |\n+---------+----------+------+\n| tassel | 1 | 1 |\n+---------+----------+------+\n```\n<!-- end -->\n\n<!-- example last2 -->\n\nAdding `1 as sentence` makes `CALL QSUGGEST` return the entire sentence with the last word corrected.\n\n<!-- request Example -->\n```sql\nCALL QSUGGEST('bag with tasel', 'products', 1 as sentence);\n```\n<!-- response Example -->\n```sql\n+-------------------+----------+------+\n| suggest | distance | docs |\n+-------------------+----------+------+\n| bag with tassel | 1 | 1 |\n+-------------------+----------+------+\n```\n<!-- end -->\n\n##### Different display mode\nThe `1 as result_line` option changes the way the suggestions are displayed in the output. Instead of showing each suggestion in a separate row, it displays all suggestions, distances, and docs in a single row. Here's an example to demonstrate this:\n\n<!-- intro -->\n##### Example:\n\n<!-- request Example -->\n\n```sql\nCALL QSUGGEST('bagg with tasel', 'products', 1 as result_line);\n```\n<!-- response Example -->\n\n```sql\n+----------+--------+\n| name | value |\n+----------+--------+\n| suggests | tassel |\n| distance | 1 |\n| docs | 1 |\n+----------+--------+\n```\n<!-- end -->\n\n##### Using force_bigrams for better transposition handling\nThe `force_bigrams` option can help with words that have transposition errors, such as \"ipohne\" vs \"iphone\". By using bigrams instead of trigrams, the algorithm can better handle character transpositions.\n\n<!-- intro -->\n##### Example:\n\n<!-- request Example -->\n\n```sql\nCALL SUGGEST('ipohne', 'products', 1 as force_bigrams);\n```\n<!-- response Example -->\n\n```sql\n+--------+----------+------+\n| suggest| distance | docs |\n+--------+----------+------+\n| iphone | 2 | 1 |\n+--------+----------+------+\n```\n<!-- end -->\n\n##### Refining suggestions with search_mode\nThe `search_mode` option enhances suggestions by performing actual searches on the index to count how many documents contain each suggested phrase or combination of words. This helps rank suggestions based on real document relevance rather than just dictionary statistics.\n\nThe option accepts two values:\n- `'phrase'` - Performs exact phrase searches. For example, when suggesting \"bag with tassel\", it searches for the exact phrase `\"bag with tassel\"` and counts documents containing these words as an adjacent phrase.\n- `'words'` - Performs bag-of-words searches. For example, when suggesting \"bag with tassel\", it searches for `bag with tassel` (without quotes) and counts documents containing all these words, regardless of order or intervening words.\n\n> NOTE: The `search_mode` option only works when `sentence` is enabled (i.e., when the input contains multiple words). For single-word queries, `search_mode` is ignored.\n\n> NOTE: **Performance consideration**: Each suggestion candidate triggers a separate search query against the index. If you need to evaluate many candidates, consider using a lower `limit` value to reduce the number of searches performed.\n\nWhen `search_mode` is enabled, results include a `found_docs` column showing the document count for each suggestion, and results are re-ranked by `found_docs` descending, then by `distance` ascending.\n\n<!-- intro -->\n##### Example with phrase matching:\n\n<!-- request Example -->\n\n```sql\nCALL QSUGGEST('bag with tasel', 'products', 1 as sentence, 'phrase' as search_mode);\n```\n\n<!-- response Example -->\n\n```sql\n+-------------------+----------+------+-------------+\n| suggest | distance | docs | found_docs |\n+-------------------+----------+------+-------------+\n| bag with tassel | 1 | 13 | 10 |\n| bag with tazer | 2 | 27 | 3 |\n+-------------------+----------+------+-------------+\n```\n\n<!-- end -->\n\n<!-- intro -->\n##### Example comparing phrase vs words matching:\n\n<!-- request Example -->\n\n```sql\n-- With phrase matching: finds exact phrases only\nCALL QSUGGEST('test carp', 'products', 1 as sentence, 'phrase' as search_mode);\n\n-- With words matching: finds documents with all words regardless of order\nCALL QSUGGEST('test carp', 'products', 1 as sentence, 'words' as search_mode);\n```\n\n<!-- response Example -->\n\n```sql\n-- Phrase mode results:\n+----------------+----------+------+-------------+\n| suggest | distance | docs | found_docs |\n+----------------+----------+------+-------------+\n| test car | 1 | 17 | 5 |\n| test carpet | 2 | 19 | 4 |\n+----------------+----------+------+-------------+\n\n-- Words mode results (more matches for \"test carpet\" due to word separation):\n+----------------+----------+------+-------------+\n| suggest | distance | docs | found_docs |\n+----------------+----------+------+-------------+\n| test carpet | 2 | 19 | 19 |\n| test car | 1 | 17 | 5 |\n+----------------+----------+------+-------------+\n```\n\n<!-- end -->\n\n**Understanding the difference**:\n- **Phrase matching** (`'phrase'`): Searches for exact sequences. The query `\"test carpet\"` matches only documents where these words appear together in that exact order (e.g., \"test carpet cleaning\" matches, but \"test the carpet\" or \"carpet test\" do not).\n- **Bag-of-words matching** (`'words'`): Searches for all words to exist in the document, order doesn't matter. The query `test carpet` matches any document containing both \"test\" and \"carpet\" anywhere (e.g., \"test the carpet\", \"test red carpet\", \"carpet test\" all match).\n\n### Demo\n\n* [This interactive course](https://play.manticoresearch.com/didyoumean/) shows how `CALL SUGGEST` works in a little web app.\n\n{.scale-0.5}\n\n\n<!-- proofread -->\n\n",
- "updated_at": 1768530797,
- "source_md5": "6581ba52f8b3f808efc55f568ea76017"
- }
- }
|