PageSourceSearch

https://abapblog.github.io/hana/hana-fuzzy-search/index.htm

html abapblog.github.io collected 2026-10-03 08:32:01 UTC 214,398 bytes, 956 lines download raw bytes

1<!DOCTYPE html>
2<html lang="ru-RU" id="html">
3<head>
4		<meta charset="UTF-8">
5	<meta http-equiv="X-UA-Compatible" content="IE=edge">
6	<meta name="viewport" content="width=device-width, initial-scale=1.0">
7	<link rel="profile" href="../../xfn/11.html">
8	<link rel="pingback" href="https://abap-blog.ru/xmlrpc.php">
9	<title>ABAP Blog | Оценка похожести строк через Fuzzy Search</title>
10
11		<!-- All in One SEO 4.1.4.4 -->
12		<meta name="description" content="Использование функционала поиска в HANA довольно обширная тема, которой посвящена отдельный гайд в документации. В данной же статье хотелось бы рассмотреть её небольшую часть, а именно нечёткий поиск или Fuzzy Search для оценки похожести строк. В целом нечёткий поиск может быть использован в разных сценариях, например: Для облегчения поиска пользователя, когда заранее может быть неизвестно […]">
13		<meta name="robots" content="max-image-preview:large">
14		<meta name="keywords" content="hana">
15		<link rel="canonical" href="index.htm">
16		
16<script type="application/ld+json" class="aioseo-schema">
17			{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebSite","@id":"https:\/\/abap-blog.ru\/#website","url":"https:\/\/abap-blog.ru\/","name":"ABAP Blog","description":"\u0412\u0441\u0435 \u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0432 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u0445 \u043e\u0442 SAP","inLanguage":"ru-RU","publisher":{"@id":"https:\/\/abap-blog.ru\/#person"}},{"@type":"Person","@id":"https:\/\/abap-blog.ru\/#person","name":"Astrafox","image":{"@type":"ImageObject","@id":"https:\/\/abap-blog.ru\/hana\/hana-fuzzy-search\/#personImage","url":"https:\/\/secure.gravatar.com\/avatar\/907cc9d3a027be8998658f18c0a7fa4e?s=96&d=retro&r=g","width":96,"height":96,"caption":"Astrafox"}},{"@type":"BreadcrumbList","@id":"https:\/\/abap-blog.ru\/hana\/hana-fuzzy-search\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/abap-blog.ru\/#listItem","position":1,"item":{"@type":"WebPage","@id":"https:\/\/abap-blog.ru\/","name":"\u0413\u043b\u0430\u0432\u043d\u0430\u044f","description":"\u0412\u0441\u0435 \u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0432 SAP \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u0445: ABAP, HANA, UI5, OData, Fiori.","url":"https:\/\/abap-blog.ru\/"},"nextItem":"https:\/\/abap-blog.ru\/hana\/#listItem"},{"@type":"ListItem","@id":"https:\/\/abap-blog.ru\/hana\/#listItem","position":2,"item":{"@type":"WebPage","@id":"https:\/\/abap-blog.ru\/hana\/","name":"HANA","description":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u0430 \u043f\u043e\u0438\u0441\u043a\u0430 \u0432 HANA \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043e\u0431\u0448\u0438\u0440\u043d\u0430\u044f \u0442\u0435\u043c\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0433\u0430\u0439\u0434 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438. \u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0436\u0435 \u0441\u0442\u0430\u0442\u044c\u0435 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0435\u0451 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0447\u0430\u0441\u0442\u044c, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u043d\u0435\u0447\u0451\u0442\u043a\u0438\u0439 \u043f\u043e\u0438\u0441\u043a \u0438\u043b\u0438 Fuzzy Search \u0434\u043b\u044f \u043e\u0446\u0435\u043d\u043a\u0438 \u043f\u043e\u0445\u043e\u0436\u0435\u0441\u0442\u0438 \u0441\u0442\u0440\u043e\u043a. \u0412 \u0446\u0435\u043b\u043e\u043c \u043d\u0435\u0447\u0451\u0442\u043a\u0438\u0439 \u043f\u043e\u0438\u0441\u043a \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044f\u0445, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: \u0414\u043b\u044f \u043e\u0431\u043b\u0435\u0433\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u043a\u043e\u0433\u0434\u0430 \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e [\u2026]","url":"https:\/\/abap-blog.ru\/hana\/"},"nextItem":"https:\/\/abap-blog.ru\/hana\/hana-fuzzy-search\/#listItem","previousItem":"https:\/\/abap-blog.ru\/#listItem"},{"@type":"ListItem","@id":"https:\/\/abap-blog.ru\/hana\/hana-fuzzy-search\/#listItem","position":3,"item":{"@type":"WebPage","@id":"https:\/\/abap-blog.ru\/hana\/hana-fuzzy-search\/","name":"\u041e\u0446\u0435\u043d\u043a\u0430 \u043f\u043e\u0445\u043e\u0436\u0435\u0441\u0442\u0438 \u0441\u0442\u0440\u043e\u043a \u0447\u0435\u0440\u0435\u0437 Fuzzy Search","description":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u0430 \u043f\u043e\u0438\u0441\u043a\u0430 \u0432 HANA \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043e\u0431\u0448\u0438\u0440\u043d\u0430\u044f \u0442\u0435\u043c\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0433\u0430\u0439\u0434 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438. \u
170412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0436\u0435 \u0441\u0442\u0430\u0442\u044c\u0435 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0435\u0451 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0447\u0430\u0441\u0442\u044c, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u043d\u0435\u0447\u0451\u0442\u043a\u0438\u0439 \u043f\u043e\u0438\u0441\u043a \u0438\u043b\u0438 Fuzzy Search \u0434\u043b\u044f \u043e\u0446\u0435\u043d\u043a\u0438 \u043f\u043e\u0445\u043e\u0436\u0435\u0441\u0442\u0438 \u0441\u0442\u0440\u043e\u043a. \u0412 \u0446\u0435\u043b\u043e\u043c \u043d\u0435\u0447\u0451\u0442\u043a\u0438\u0439 \u043f\u043e\u0438\u0441\u043a \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044f\u0445, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: \u0414\u043b\u044f \u043e\u0431\u043b\u0435\u0433\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u043a\u043e\u0433\u0434\u0430 \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e [\u2026]","url":"https:\/\/abap-blog.ru\/hana\/hana-fuzzy-search\/"},"previousItem":"https:\/\/abap-blog.ru\/hana\/#listItem"}]},{"@type":"Person","@id":"https:\/\/abap-blog.ru\/author\/admin\/#author","url":"https:\/\/abap-blog.ru\/author\/admin\/","name":"Astrafox","image":{"@type":"ImageObject","@id":"https:\/\/abap-blog.ru\/hana\/hana-fuzzy-search\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/907cc9d3a027be8998658f18c0a7fa4e?s=96&d=retro&r=g","width":96,"height":96,"caption":"Astrafox"}},{"@type":"WebPage","@id":"https:\/\/abap-blog.ru\/hana\/hana-fuzzy-search\/#webpage","url":"https:\/\/abap-blog.ru\/hana\/hana-fuzzy-search\/","name":"ABAP Blog | \u041e\u0446\u0435\u043d\u043a\u0430 \u043f\u043e\u0445\u043e\u0436\u0435\u0441\u0442\u0438 \u0441\u0442\u0440\u043e\u043a \u0447\u0435\u0440\u0435\u0437 Fuzzy Search","description":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u0430 \u043f\u043e\u0438\u0441\u043a\u0430 \u0432 HANA \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043e\u0431\u0448\u0438\u0440\u043d\u0430\u044f \u0442\u0435\u043c\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0433\u0430\u0439\u0434 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438. \u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0436\u0435 \u0441\u0442\u0430\u0442\u044c\u0435 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0435\u0451 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0447\u0430\u0441\u0442\u044c, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u043d\u0435\u0447\u0451\u0442\u043a\u0438\u0439 \u043f\u043e\u0438\u0441\u043a \u0438\u043b\u0438 Fuzzy Search \u0434\u043b\u044f \u043e\u0446\u0435\u043d\u043a\u0438 \u043f\u043e\u0445\u043e\u0436\u0435\u0441\u0442\u0438 \u0441\u0442\u0440\u043e\u043a. \u0412 \u0446\u0435\u043b\u043e\u043c \u043d\u0435\u0447\u0451\u0442\u043a\u0438\u0439 \u043f\u043e\u0438\u0441\u043a \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044f\u0445, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: \u0414\u043b\u044f \u043e\u0431\u043b\u0435\u0433\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u043a\u043e\u0433\u0434\u0430 \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e [\u2026]","inLanguage":"ru-RU","isPartOf":{"@id":"https:\/\/abap-blog.ru\/#website"},"breadcrumb":{"@id":"https:\/\/abap-blog.ru\/hana\/hana-fuzzy-search\/#breadcrumblist"},"author":"https:\/\/abap-blog.ru\/author\/admin\/#author","creator":"https:\/\/abap-blog.ru\/author\/admin\/#author","datePublished":"2021-04-26T13:05:19+04:00","dateModified":"2021-04-28T11:59:44+04:00"},{"@type":"Article","@id":"https:\/\/abap-blog.ru\/hana\/hana-fuzzy-search\/#article","name":"ABAP Blog | \u041e\u0446\u0435\u043d\u043a\u0430 \u043f\u043e\u0445\u043e\u0436\u0435\u0441\u0442\u0438 \u0441\u0442\u0440\u043e\u043a \u0447\u0435\u0440\u0435\u0437 Fuzzy Search","description":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u0430 \u043f\u043e\u0438\u0441\u043a\u0430 \u0432 HANA \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043e\u0431\u0448\u0438\u0440\u043d\u0430\u044f \u0442\u0435\u043c\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0433\u0430\u0439\u0434 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438. \u
170412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0436\u0435 \u0441\u0442\u0430\u0442\u044c\u0435 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0435\u0451 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0447\u0430\u0441\u0442\u044c, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u043d\u0435\u0447\u0451\u0442\u043a\u0438\u0439 \u043f\u043e\u0438\u0441\u043a \u0438\u043b\u0438 Fuzzy Search \u0434\u043b\u044f \u043e\u0446\u0435\u043d\u043a\u0438 \u043f\u043e\u0445\u043e\u0436\u0435\u0441\u0442\u0438 \u0441\u0442\u0440\u043e\u043a. \u0412 \u0446\u0435\u043b\u043e\u043c \u043d\u0435\u0447\u0451\u0442\u043a\u0438\u0439 \u043f\u043e\u0438\u0441\u043a \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044f\u0445, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: \u0414\u043b\u044f \u043e\u0431\u043b\u0435\u0433\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u043a\u043e\u0433\u0434\u0430 \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e [\u2026]","inLanguage":"ru-RU","headline":"\u041e\u0446\u0435\u043d\u043a\u0430 \u043f\u043e\u0445\u043e\u0436\u0435\u0441\u0442\u0438 \u0441\u0442\u0440\u043e\u043a \u0447\u0435\u0440\u0435\u0437 Fuzzy Search","author":{"@id":"https:\/\/abap-blog.ru\/author\/admin\/#author"},"publisher":{"@id":"https:\/\/abap-blog.ru\/#person"},"datePublished":"2021-04-26T13:05:19+04:00","dateModified":"2021-04-28T11:59:44+04:00","articleSection":"HANA","mainEntityOfPage":{"@id":"https:\/\/abap-blog.ru\/hana\/hana-fuzzy-search\/#webpage"},"isPartOf":{"@id":"https:\/\/abap-blog.ru\/hana\/hana-fuzzy-search\/#webpage"},"image":{"@type":"ImageObject","@id":"https:\/\/abap-blog.ru\/#articleImage","url":"https:\/\/abap-blog.ru\/wp-content\/uploads\/2021\/04\/database-search-2361-2.png","width":512,"height":512}}]}
18		</script>
18
19		
19<script type="text/javascript">
20			window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
21			ga('create', "UA-150412824-1", { 'cookieDomain': 'abap-blog.ru' } );
22			ga('require', 'outboundLinkTracker');
23			ga('send', 'pageview');
24		</script>
24
25		
25<script async="" src="../../analytics.js"></script>
25
26		
26<script async="" src="../../wp-content/plugins/all-in-one-seo-pack/app/Common/Assets/js/autotrack.js?ver=4.1.4.4"></script>
26
27		<!-- All in One SEO -->
28
29<link rel='dns-prefetch' href='../../index-1.htm'>
30<link rel='dns-prefetch' href='//fonts.googleapis.com'>
31<link rel='dns-prefetch' href='../../index-2.htm'>
32<link rel="alternate" type="application/rss+xml" title="ABAP Blog &raquo; Лента" href="../../feed/index.htm.rss">
33<link rel="alternate" type="application/rss+xml" title="ABAP Blog &raquo; Лента комментариев" href="../../comments/feed/index.htm.rss">
34<link rel="alternate" type="application/rss+xml" title="ABAP Blog &raquo; Лента комментариев к &laquo;Оценка похожести строк через Fuzzy Search&raquo;" href="feed/index.htm.rss">
35		
35<script type="text/javascript">
36			window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/13.1.0\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/13.1.0\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/abap-blog.ru\/wp-includes\/js\/wp-emoji-release.min.js?ver=5.8.1"}};
37			!function(e,a,t){var n,r,o,i=a.createElement("canvas"),p=i.getContext&&i.getContext("2d");function s(e,t){var a=String.fromCharCode;p.clearRect(0,0,i.width,i.height),p.fillText(a.apply(this,e),0,0);e=i.toDataURL();return p.clearRect(0,0,i.width,i.height),p.fillText(a.apply(this,t),0,0),e===i.toDataURL()}function c(e){var t=a.createElement("script");t.src=e,t.defer=t.type="text/javascript",a.getElementsByTagName("head")[0].appendChild(t)}for(o=Array("flag","emoji"),t.supports={everything:!0,everythingExceptFlag:!0},r=0;r<o.length;r++)t.supports[o[r]]=function(e){if(!p||!p.fillText)return!1;switch(p.textBaseline="top",p.font="600 32px Arial",e){case"flag":return s([127987,65039,8205,9895,65039],[127987,65039,8203,9895,65039])?!1:!s([55356,56826,55356,56819],[55356,56826,8203,55356,56819])&&!s([55356,57332,56128,56423,56128,56418,56128,56421,56128,56430,56128,56423,56128,56447],[55356,57332,8203,56128,56423,8203,56128,56418,8203,56128,56421,8203,56128,56430,8203,56128,56423,8203,56128,56447]);case"emoji":return!s([10084,65039,8205,55357,56613],[10084,65039,8203,55357,56613])}return!1}(o[r]),t.supports.everything=t.supports.everything&&t.supports[o[r]],"flag"!==o[r]&&(t.supports.everythingExceptFlag=t.supports.everythingExceptFlag&&t.supports[o[r]]);t.supports.everythingExceptFlag=t.supports.everythingExceptFlag&&!t.supports.flag,t.DOMReady=!1,t.readyCallback=function(){t.DOMReady=!0},t.supports.everything||(n=function(){t.readyCallback()},a.addEventListener?(a.addEventListener("DOMContentLoaded",n,!1),e.addEventListener("load",n,!1)):(e.attachEvent("onload",n),a.attachEvent("onreadystatechange",function(){"complete"===a.readyState&&t.readyCallback()})),(n=t.source||{}).concatemoji?c(n.concatemoji):n.wpemoji&&n.twemoji&&(c(n.twemoji),c(n.wpemoji)))}(window,document,window._wpemojiSettings);
38		</script>
38
39		<style type="text/css">
40img.wp-smiley,
41img.emoji {
42	display: inline !important;
43	border: none !important;
44	box-shadow: none !important;
45	height: 1em !important;
46	width: 1em !important;
47	margin: 0 .07em !important;
48	vertical-align: -0.1em !important;
49	background: none !important;
50	padding: 0 !important;
51}
52</style>
53	<link rel='stylesheet' id='urvanov_syntax_highlighter-css' href='../../wp-content/plugins/urvanov-syntax-highlighter/css/min/urvanov_syntax_highlighter.min.css?ver=2.8.22' media='all'>
54<link rel='stylesheet' id='crayon-theme-abapblog-css' href='../../wp-content/uploads/urvanov-syntax-highlighter/themes/abapblog/abapblog.css?ver=2.8.22' media='all'>
55<link rel='stylesheet' id='crayon-font-monospace-css' href='../../wp-content/plugins/urvanov-syntax-highlighter/fonts/monospace.css?ver=2.8.22' media='all'>
56<link rel='stylesheet' id='wp-block-library-css' href='../../wp-includes/css/dist/block-library/style.min.css?ver=5.8.1' media='all'>
57<link rel='stylesheet' id='arve-main-css' href='../../wp-content/plugins/advanced-responsive-video-embedder/build/main.css?ver=b809f4d4c33c91a5ae3a5099af09bdde' media='all'>
58<link rel='stylesheet' id='contact-form-7-css' href='../../wp-content/plugins/contact-form-7/includes/css/styles.css?ver=5.5.1' media='all'>
59<link rel='stylesheet' id='bg-shce-genericons-css' href='../../wp-content/plugins/show-hidecollapse-expand/assets/css/genericons/genericons.css?ver=5.8.1' media='all'>
60<link rel='stylesheet' id='bg-show-hide-css' href='../../wp-content/plugins/show-hidecollapse-expand/assets/css/bg-show-hide.css?ver=5.8.1' media='all'>
61<link rel='stylesheet' id='dashicons-css' href='../../wp-includes/css/dashicons.min.css?ver=5.8.1' media='all'>
62<link rel='stylesheet' id='tooltip-css' href='../../wp-content/plugins/wp-poll/assets/tool-tip.min.css?ver=5.8.1' media='all'>
63<link rel='stylesheet' id='wpp-front-cb-css' href='../../wp-content/plugins/wp-poll/assets/front/css/checkbox.css?ver=5.8.1' media='all'>
64<link rel='stylesheet' id='wpp-front-css' href='../../wp-content/plugins/wp-poll/assets/front/css/style.css?ver=5.8.1' media='all'>
65<link rel='stylesheet' id='flat-fonts-css' href='../../css.css?family=Lobster%7CRoboto:400,700%7CRoboto+Slab%7CRoboto%20Condensed' media='all'>
66<link rel='stylesheet' id='flat-theme-css' href='../../wp-content/themes/flat/assets/css/flat.css?ver=1.7.11' media='all'>
67<link rel='stylesheet' id='flat-style-css' href='../../wp-content/themes/flat/style.css?ver=5.8.1' media='all'>
68<link rel='stylesheet' id='slb_core-css' href='../../wp-content/plugins/simple-lightbox/client/css/app.css?ver=2.8.1' media='all'>
69<link rel='stylesheet' id='decent-comments-widget-css' href='../../wp-content/plugins/decent-comments/css/decent-comments-widget.css' media='all'>
70<script src='../../wp-includes/js/jquery/jquery.min.js?ver=3.6.0' id='jquery-core-js'></script>
vendor: 1 bytes, line 70
70
71<script src='../../wp-includes/js/jquery/jquery-migrate.min.js?ver=3.3.2' id='jquery-migrate-js'></script>
vendor: 1 bytes, line 71
71
72<script type='text/javascript' id='urvanov_syntax_highlighter_js-js-extra'>
73/* <![CDATA[ */
74var UrvanovSyntaxHighlighterSyntaxSettings = {"version":"2.8.22","is_admin":"0","ajaxurl":"https:\/\/abap-blog.ru\/wp-admin\/admin-ajax.php","prefix":"urvanov-syntax-highlighter-","setting":"urvanov-syntax-highlighter-setting","selected":"urvanov-syntax-highlighter-setting-selected","changed":"urvanov-syntax-highlighter-setting-changed","special":"urvanov-syntax-highlighter-setting-special","orig_value":"data-orig-value","debug":""};
75var UrvanovSyntaxHighlighterSyntaxStrings = {"copy":"\u041d\u0430\u0436\u043c\u0438\u0442\u0435 %s \u0434\u043b\u044f \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, %s \u0434\u043b\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0438","minimize":"Click To Expand Code"};
76/* ]]> */
77</script>
vendor: 1 bytes, line 77
77
78<script src='../../wp-content/plugins/urvanov-syntax-highlighter/js/min/urvanov_syntax_highlighter.min.js?ver=2.8.22' id='urvanov_syntax_highlighter_js-js'></script>
vendor: 1 bytes, line 78
78
79<script src='../../wp-includes/js/dist/vendor/regenerator-runtime.min.js?ver=0.13.7' id='regenerator-runtime-js'></script>
vendor: 1 bytes, line 79
79
80<script src='../../wp-includes/js/dist/vendor/wp-polyfill.min.js?ver=3.15.0' id='wp-polyfill-js'></script>
vendor: 1 bytes, line 80
80
81<script async="async" src='../../wp-content/plugins/advanced-responsive-video-embedder/build/main.js?ver=b809f4d4c33c91a5ae3a5099af09bdde' id='arve-main-js'></script>
vendor: 1 bytes, line 81
81
82<script src='../../wp-content/plugins/wp-poll/assets/front/js/svgcheckbx.js?ver=5.8.1' id='wpp-front-cb-js'></script>
vendor: 1 bytes, line 82
82
83<script type='text/javascript' id='wpp-front-js-extra'>
84/* <![CDATA[ */
85var wpp_object = {"ajaxurl":"https:\/\/abap-blog.ru\/wp-admin\/admin-ajax.php","copyText":"Copied !","voteText":"Vote(s)","tempProDownload":"https:\/\/pluginbazar.com\/my-account\/downloads\/","tempProDownloadTxt":"Download Version 1.1.0"};
86/* ]]> */
87</script>
vendor: 1 bytes, line 87
87
88<script src='../../wp-content/plugins/wp-poll/assets/front/js/scripts.js?ver=5.8.1' id='wpp-front-js'></script>
vendor: 1 bytes, line 88
88
89<script src='../../wp-content/themes/flat/assets/js/flat.js?ver=1.7.11' id='flat-js-js'></script>
89
90<!--[if lt IE 9]>
91<script src='https://abap-blog.ru/wp-content/themes/flat/assets/js/html5shiv.min.js?ver=3.7.2' id='html5shiv-js'></script>
91
92<![endif]-->
93<link rel="https://api.w.org/" href="../../wp-json/index.htm.json"><link rel="alternate" type="application/json" href="../../wp-json/wp/v2/posts/7264.json"><link rel="EditURI" type="application/rsd+xml" title="RSD" href="../../xmlrpc.php.xml?rsd">
94<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="../../wp-includes/wlwmanifest.xml"> 
95<meta name="generator" content="WordPress 5.8.1">
96<link rel='shortlink' href='index.htm?p=7264'>
97<link rel="alternate" type="application/json+oembed" href="../../wp-json/oembed/1.0/embed-19.json?url=https%3A%2F%2Fabap-blog.ru%2Fhana%2Fhana-fuzzy-search%2F">
98<link rel="alternate" type="text/xml+oembed" href="../../wp-json/oembed/1.0/embed-19.xml?url=https%3A%2F%2Fabap-blog.ru%2Fhana%2Fhana-fuzzy-search%2F&#038;format=xml">
99
100<!-- WP Youtube Player 1.7 by unijimpe -->
101<style type="text/css">#page:before, .sidebar-offcanvas, #secondary { background-color: #272727; }@media (max-width: 1199px) { #page &gt; .container { background-color: #272727; } }body { background-size: initial; }</style><style type="text/css">#masthead .site-title {font-family:Lobster}body {font-family:Roboto }h1,h2,h3,h4,h5,h6 {font-family:Roboto Slab}#masthead .site-description, .hentry .entry-meta {font-family:Roboto Condensed}</style><style type="text/css" media="screen">body{position:relative}#dynamic-to-top{display:none;overflow:hidden;width:auto;z-index:90;position:fixed;bottom:20px;right:20px;top:auto;left:auto;font-family:sans-serif;font-size:1em;color:#fff;text-decoration:none;text-shadow:0 1px 0 #333;font-weight:bold;padding:17px 16px;border:2px solid #000;background:#4c5055;-webkit-background-origin:border;-moz-background-origin:border;-icab-background-origin:border;-khtml-background-origin:border;-o-background-origin:border;background-origin:border;-webkit-background-clip:padding-box;-moz-background-clip:padding-box;-icab-background-clip:padding-box;-khtml-background-clip:padding-box;-o-background-clip:padding-box;background-clip:padding-box;-webkit-box-shadow:0 1px 3px rgba( 0, 0, 0, 0.4 ), inset 0 0 0 1px rgba( 0, 0, 0, 0.2 ), inset 0 1px 0 rgba( 255, 255, 255, .4 ), inset 0 10px 10px rgba( 255, 255, 255, .1 );-ms-box-shadow:0 1px 3px rgba( 0, 0, 0, 0.4 ), inset 0 0 0 1px rgba( 0, 0, 0, 0.2 ), inset 0 1px 0 rgba( 255, 255, 255, .4 ), inset 0 10px 10px rgba( 255, 255, 255, .1 );-moz-box-shadow:0 1px 3px rgba( 0, 0, 0, 0.4 ), inset 0 0 0 1px rgba( 0, 0, 0, 0.2 ), inset 0 1px 0 rgba( 255, 255, 255, .4 ), inset 0 10px 10px rgba( 255, 255, 255, .1 );-o-box-shadow:0 1px 3px rgba( 0, 0, 0, 0.4 ), inset 0 0 0 1px rgba( 0, 0, 0, 0.2 ), inset 0 1px 0 rgba( 255, 255, 255, .4 ), inset 0 10px 10px rgba( 255, 255, 255, .1 );-khtml-box-shadow:0 1px 3px rgba( 0, 0, 0, 0.4 ), inset 0 0 0 1px rgba( 0, 0, 0, 0.2 ), inset 0 1px 0 rgba( 255, 255, 255, .4 ), inset 0 10px 10px rgba( 255, 255, 255, .1 );-icab-box-shadow:0 1px 3px rgba( 0, 0, 0, 0.4 ), inset 0 0 0 1px rgba( 0, 0, 0, 0.2 ), inset 0 1px 0 rgba( 255, 255, 255, .4 ), inset 0 10px 10px rgba( 255, 255, 255, .1 );box-shadow:0 1px 3px rgba( 0, 0, 0, 0.4 ), inset 0 0 0 1px rgba( 0, 0, 0, 0.2 ), inset 0 1px 0 rgba( 255, 255, 255, .4 ), inset 0 10px 10px rgba( 255, 255, 255, .1 );-webkit-border-radius:30px;-moz-border-radius:30px;-icab-border-radius:30px;-khtml-border-radius:30px;border-radius:30px}#dynamic-to-top:hover{background:#4fd650;background:#4c5055 -webkit-gradient( linear, 0% 0%, 0% 100%, from( rgba( 255, 255, 255, .2 ) ), to( rgba( 0, 0, 0, 0 ) ) );background:#4c5055 -webkit-linear-gradient( top, rgba( 255, 255, 255, .2 ), rgba( 0, 0, 0, 0 ) );background:#4c5055 -khtml-linear-gradient( top, rgba( 255, 255, 255, .2 ), rgba( 0, 0, 0, 0 ) );background:#4c5055 -moz-linear-gradient( top, rgba( 255, 255, 255, .2 ), rgba( 0, 0, 0, 0 ) );background:#4c5055 -o-linear-gradient( top, rgba( 255, 255, 255, .2 ), rgba( 0, 0, 0, 0 ) );background:#4c5055 -ms-linear-gradient( top, rgba( 255, 255, 255, .2 ), rgba( 0, 0, 0, 0 ) );background:#4c5055 -icab-linear-gradient( top, rgba( 255, 255, 255, .2 ), rgba( 0, 0, 0, 0 ) );background:#4c5055 linear-gradient( top, rgba( 255, 255, 255, .2 ), rgba( 0, 0, 0, 0 ) );cursor:pointer}#dynamic-to-top:active{background:#4c5055;background:#4c5055 -webkit-gradient( linear, 0% 0%, 0% 100%, from( rgba( 0, 0, 0, .3 ) ), to( rgba( 0, 0, 0, 0 ) ) );background:#4c5055 -webkit-linear-gradient( top, rgba( 0, 0, 0, .1 ), rgba( 0, 0, 0, 0 ) );background:#4c5055 -moz-linear-gradient( top, rgba( 0, 0, 0, .1 ), rgba( 0, 0, 0, 0 ) );background:#4c5055 -khtml-linear-gradient( top, rgba( 0, 0, 0, .1 ), rgba( 0, 0, 0, 0 ) );background:#4c5055 -o-linear-gradient( top, rgba( 0, 0, 0, .1 ), rgba( 0, 0, 0, 0 ) );
101background:#4c5055 -ms-linear-gradient( top, rgba( 0, 0, 0, .1 ), rgba( 0, 0, 0, 0 ) );background:#4c5055 -icab-linear-gradient( top, rgba( 0, 0, 0, .1 ), rgba( 0, 0, 0, 0 ) );background:#4c5055 linear-gradient( top, rgba( 0, 0, 0, .1 ), rgba( 0, 0, 0, 0 ) )}#dynamic-to-top,#dynamic-to-top:active,#dynamic-to-top:focus,#dynamic-to-top:hover{outline:none}#dynamic-to-top span{display:block;overflow:hidden;width:14px;height:12px;background:url( ../../wp-content/plugins/dynamic-to-top/css/images/up.png )no-repeat center center}</style><style type="text/css" id="custom-background-css">
102body.custom-background { background-image: url("../../wp-content/uploads/2014/10/escheresque_ste.png"); background-position: left top; background-size: auto; background-repeat: repeat; background-attachment: scroll; }
103</style>
104		</head>
105
106<body class="post-template-default single single-post postid-7264 single-format-standard custom-background" itemscope="" itemtype="http://schema.org/WebPage">
107		<div id="page">
108	<div class="container">
109		<div class="row row-offcanvas row-offcanvas-left" style="background: #272727;">			
110			
111			<div id="secondary1" class="col-lg-t" style="background: #272727; display:none">
112								<header id="masthead1" class="site-headerex" role="banner">
113										<div class="hgroupex">
114						<h1 class="site-title display-title"><a href="../../index.htm" title="ABAP Blog" rel="home"><span itemprop="name">ABAP Blog</span></a></h1><h2 itemprop="description" class="site-description">Все о разработке в решениях от SAP</h2>					</div>
115									</header>
116							</div>
117
118
119			<div id="secondary" class="col-lg-3" style="display:block">
120								<header id="masthead" class="site-header" role="banner">
121										<div class="hgroup">
122						<h1 class="site-title display-title"><a href="../../index.htm" title="ABAP Blog" rel="home"><span itemprop="name">ABAP Blog</span></a></h1><h2 itemprop="description" class="site-description">Все о разработке в решениях от SAP</h2>					</div>
123					<button type="button" class="btn btn-link hidden-lg toggle-sidebar" data-toggle="offcanvas" aria-label="Sidebar"><i class="fa fa-gear"></i></button>
124					<button type="button" class="btn btn-link hidden-lg toggle-navigation" aria-label="Navigation Menu"><i class="fa fa-bars"></i></button>
125					<nav id="site-navigation" class="navigation main-navigation" role="navigation">
126						<ul id="menu-glavnoe-menyu" class="nav-menu"><li id="menu-item-2313" class="fa fa-home menu-item menu-item-type-custom menu-item-object-custom menu-item-home menu-item-has-children menu-item-2313"><a href="../../index.htm">Главная</a>
127<ul class="sub-menu">
128	<li id="menu-item-2363" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-2363"><a href="../../category/osnovy-abap/index.htm">Основы ABAP</a>
129	<ul class="sub-menu">
130		<li id="menu-item-2906" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-2906"><a href="../../category/osnovy-abap/oop/index.htm">ABAP Objects</a></li>
131		<li id="menu-item-2370" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-2370"><a href="../../category/osnovy-abap/slovar/index.htm">ABAP Словарь</a></li>
132		<li id="menu-item-2367" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-2367"><a href="../../category/osnovy-abap/files/index.htm">Работа с файлами</a></li>
133		<li id="menu-item-2364" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-2364"><a href="../../category/osnovy-abap/sap-dynpro/index.htm">SAP Dynpro</a></li>
134		<li id="menu-item-6845" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-6845"><a href="../../category/osnovy-abap/vnutrennie-tablicy/index.htm">Внутренние таблицы</a></li>
135		<li id="menu-item-6849" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-6849"><a href="../../category/osnovy-abap/dinamicheskoe-programmirovanie/index.htm">Динамическое программирование</a></li>
136	</ul>
137</li>
138	<li id="menu-item-2366" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-2366"><a href="../../category/database-work/index.htm">Работа с БД</a>
139	<ul class="sub-menu">
140		<li id="menu-item-7303" class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-parent current-post-parent menu-item-7303"><a href="../../category/hana/index.htm">HANA</a></li>
141	</ul>
142</li>
143	<li id="menu-item-2368" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-2368"><a href="../../category/network/index.htm">Сетевые технологии</a>
144	<ul class="sub-menu">
145		<li id="menu-item-6328" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-6328"><a href="../../category/network/ui5fiori/index.htm">UI5 &amp; Fiori</a></li>
146		<li id="menu-item-6327" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-6327">
146<a href="../../category/network/odata-network/index.htm">OData</a></li>
147		<li id="menu-item-2907" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-2907"><a href="../../category/network/web-dynpro/index.htm">Web Dynpro</a></li>
148	</ul>
149</li>
150	<li id="menu-item-2369" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-2369"><a href="../../category/enhancements/index.htm">Расширения</a></li>
151	<li id="menu-item-6329" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-6329"><a href="../../category/abap-cloud/index.htm">ABAP Cloud</a></li>
152	<li id="menu-item-2365" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-2365"><a href="../../category/others/index.htm">Прочее</a></li>
153</ul>
154</li>
155<li id="menu-item-3536" class="fa fa-bell menu-item menu-item-type-post_type menu-item-object-page menu-item-3536"><a href="../../abap-the-best-practice/index.htm">ABAP Best Practice</a></li>
156<li id="menu-item-3727" class="fa fa-child menu-item menu-item-type-post_type menu-item-object-page menu-item-3727"><a href="../../vakansii/index.htm">Вакансии ABAP</a></li>
157<li id="menu-item-3885" class="fa fa-bookmark menu-item menu-item-type-post_type menu-item-object-page menu-item-3885"><a href="../../abap-notes/index.htm">Быстрые заметки</a></li>
158<li id="menu-item-2316" class="fa fa-info-circle menu-item menu-item-type-post_type menu-item-object-page menu-item-2316"><a href="../../about/index.htm">Обо мне</a></li>
159</ul>					</nav>
160									</header>
161				
162				<div class="sidebar-offcanvas">
163<div id="main-sidebar" class="widget-area" role="complementary">
164											<aside id="search-2" class="widget widget_search">
165	<form method="get" id="searchform" action="https://abap-blog.ru/">
166		<label for="s" class="assistive-text">Поиск</label>
167		<input type="text" class="field" name="s" id="s" placeholder="Поиск">
168		<input type="submit" class="submit" name="submit" id="searchsubmit" value="Поиск">
169	</form>
170					</aside>
171					<aside id="linkcat-2" class="widget widget_links">
172						<h3 class='widget-title'>Ссылки</h3>
173
174	<ul class='xoxo blogroll'>
175<li><a href="../../topics/abap.html" target="_blank">ABAP Community</a></li>
176<li><a href="../../wiki/display/ABAP/ABAP Development.html" title="Wiki по ABAP" target="_blank">ABAP Development Wiki</a></li>
177<li><a href="../../doc/abapdocu_latest_index_htm/latest/en-US/index.htm" title="Последняя версия справки по ABAP" target="_blank">ABAP Help</a></li>
178<li><a href="../../doc/abapdocu_cp_index_htm/CLOUD/en-US/index.htm" target="_blank">ABAP Help (Cloud)</a></li>
179<li><a href="../../learning-journeys/overview.html?role=Developer" target="_blank">Developer Learning Journeys</a></li>
180<li><a href="../../index-3.htm" target="_blank">Open Source Projects</a></li>
181<li><a href="../../tutorial-navigator.html" target="_blank">SAP Tutorials</a></li>
182<li><a href="https://t.me/abapblog" target="_blank"><img src="../../wp-content/uploads/2020/04/telegram-1.png" alt="Канал в Telegram"> Канал в Telegram</a></li>
183
184	</ul>
185					</aside>
186
187					<aside id="endo_wrc_widget-2" class="widget widget_endo_wrc_widget">
188						<h3 class='widget-title'>Цитаты</h3>
189<p>Человеческие взаимоотношения сложны и никогда не обходятся без шероховатостей, но значат они больше, чем любая другая сторона работы.</p>
190<p><strong>Том Демарко и Тимоти Листер, «Peopleware»</strong></p>
191					</aside>
192								<aside id="custom-post-type-recent-posts-3" class="widget widget_recent_entries">
193						<h3 class='widget-title'>Новое</h3>
194			<ul>
195													<li>
196										<a href="../../abap-notes/poluchenie-instancii-cl_gui_alv_grid-dlya-salv/index.htm">Получение инстанции cl_gui_alv_grid для SALV</a>
197											<span class="post-date">11.09.2021</span>
198														</li>
199													<li>
200										<a href="../../abap-cloud/introduction-to-abap-in-the-cloud/index.htm">Introduction to ABAP in the Cloud</a>
201											<span class="post-date">18.08.2021</span>
202														</li>
203													<li>
204										<a href="../../abap-notes/getting-started-with-fpm-bopf-integration/index.htm">Getting Started with FPM BOPF Integration</a>
205											<span class="post-date">01.06.2021</span>
206														</li>
207													<li>
208										<a href="../../abap-notes/how-to-use-authority-checks-in-business-object-processing-framework/index.htm">30. How to Use Authority Checks in Business Object Processing Framework</a>
209											<span class="post-date">29.05.2021</span>
210														</li>
211													<li>
212										<a href="../../abap-notes/bopf-extensibility/index.htm">29. BOPF Extensibility</a>
213											<span class="post-date">29.05.2021</span>
214														</li>
215													<li>
216										<a href="../../abap-notes/bopf-enterprise-procurement-model-epm/index.htm">28. BOPF Enterprise Procurement Model (EPM)</a>
217											<span class="post-date">29.05.2021</span>
218														</li>
219													<li>
220										<a href="../../abap-notes/bopf-integration/index.htm">27. BOPF Integration</a>
221											<span class="post-date">29.05.2021</span>
222														</li>
223													<li>
224										<a href="../../abap-notes/bopf-business-configuration-objects/index.htm">26. BOPF Business Configuration Objects</a>
225											<span class="post-date">29.05.2021</span>
226														</li>
227													<li>
228										<a href="../../abap-notes/bopf-performance/index.htm">25. BOPF Performance</a>
229											<span class="post-date">29.05.2021</span>
230														</li>
231													<li>
232										<a href="../../abap-notes/bopf-supportability/index.htm">24. BOPF Supportability</a>
233											<span class="post-date">29.05.2021</span>
234														</li>
235							</ul>
236								</aside>
237					<aside id="decent_comments_widget-2" class="widget widget_decent_comments_widget">
238						<h3 class='widget-title'>Последние комментарии</h3>
239<div class="decent-comments"><ul><li><div class="comment"><span class="comment-author">Николай</span><span class="comment-date"> 27.10.2021 в 15:19</span><span class="comment-link"> на <a href="../../osnovy-abap/internal-table-as-data-source-select/index.htm#comment-17857">Внутренние таблицы как источник в SQL запросах</a></span><span class="comment-excerpt">Спасибо за статью. Если нужно сделать агрегацию внутренней таблицы то агрегация через передачу во временную таблицу на БД тоже будет работать медленней чем через loop/collect? Например таблица 100к записей, которая становится 5к после агрегации. </span></div></li><li><div class="comment"><span class="comment-author">Аноним</span><span class="comment-date"> 14.10.2021 в 13:50</span><span class="comment-link"> на <a href="../../osnovy-abap/oop/dekorator-decorator-wrapper/index.htm#comment-17856">Декоратор (Decorator, Wrapper)</a></span><span class="comment-excerpt">Так поведение Decorator не надо будет повторно описывать повторно в других Component. Но это возможно при изменении типа mo_component, например, на object. </span></div></li><li><div class="comment"><span class="comment-author">Александр</span><span class="comment-date"> 11.10.2021 в 06:50</span><span class="comment-link"> на <a href="../../osnovy-abap/oop/dekorator-decorator-wrapper/index.htm#comment-17854">Декоратор (Decorator, Wrapper)</a></span><span class="comment-excerpt">Привет:) Возможно, я не так выразил мысль. Я имел ввиду, какая ценность от класса Decorator, если можно декорировать поведение от Component и от него же наследовать конкретные декораторы? (см. первую UML диаграмму) </span></div></li><li><div class="comment"><span class="comment-author">Astrafox</span><span class="comment-date"> 10.10.2021 в 12:39</span><span class="comment-link"> на <a href="../../osnovy-abap/oop/dekorator-decorator-wrapper/index.htm#comment-17853">Декоратор (Decorator, Wrapper)</a></span><span class="comment-excerpt">Привет! Можно и так, однако конкретный компонент может иметь более широкий интерфейс, нежели тот, что нужен в декораторах. Тут скорее пример не совсем удачный, декорируемое поведение лучше вынести в отдельный интерфейс, реализуемый как компонентом, так и декораторами. </span></div></li><li><div class="comment"><span class="comment-author">Александр</span><span class="comment-date"> 04.10.2021 в 12:51</span><span class="comment-link"> на <a href="../../osnovy-abap/oop/dekorator-decorator-wrapper/index.htm#comment-17850">Декоратор (Decorator, Wrapper)</a></span><span class="comment-excerpt">А какую роль играет базовый класс декоратора lcl_decorator? Что мешает конкретные декораторы наследовать от компонента lcl_concrete_component? Клиентский код и логика выполнения не поменяется. </span></div></li></ul></div>					</aside>
240											</div>
241				</div>
242			</div>
243
244						<div id="primary" class="content-area col-lg-9" itemprop="mainContentOfPage" style="">
245							<div id="content" class="site-content" role="main" itemscope="" itemtype="http://schema.org/Article">
246			<article id="post-7264" class="post-7264 post type-post status-publish format-standard hentry category-hana">
247	<header class="entry-header">
248		<h1 class="entry-title" itemprop="name">Оценка похожести строк через Fuzzy Search</h1>
249							<div class="entry-meta"><span class="entry-date"><a href="index.htm" rel="bookmark"><time class="entry-date published" datetime="2021-04-26T17:05:19+04:00" itemprop="datepublished">26.04.2021</time></a></span> от <span class="author vcard" itemscope="" itemprop="author" itemtype="http://schema.org/Person"><a class="url fn n" href="../../author/admin/index.htm" rel="author" itemprop="url"><span itemprop="name">Astrafox</span></a></span><span class="sep">&middot;</span><span class="comments-link"><a href="index.htm#respond" itemprop="discussionUrl">Нет комментариев</a></span></div>
250			</header>
251		
252	
253	<div class="entry-content" itemprop="articleBody">
254				<p><a href="../../wp-content/uploads/2021/04/database-search-2361-2.png" data-slb-active="1" data-slb-asset="102619500" data-slb-internal="0" data-slb-group="7264"><img loading="lazy" class="wp-image-7274 alignright" src="../../wp-content/uploads/2021/04/database-search-2361-2.png" alt="" width="255" height="255" srcset="../../wp-content/uploads/2021/04/database-search-2361-2.png 512w, ../../wp-content/uploads/2021/04/database-search-2361-2-300x300.png 300w, ../../wp-content/uploads/2021/04/database-search-2361-2-150x150.png 150w" sizes="(max-width: 255px) 100vw, 255px"></a>Использование функционала поиска в HANA довольно обширная тема, которой посвящена <a href="../../viewer/691cb949c1034198800afde3e5be6570/2.0.05/en-US/ce86ef2fd97610149eaaaa0244ca4d36.html" target="_blank" rel="noopener">отдельный гайд в документации</a>.</p>
255<p>В данной же статье хотелось бы рассмотреть её небольшую часть, а именно нечёткий поиск или <a href="../../viewer/691cb949c1034198800afde3e5be6570/2.0.05/en-US/cc602780bb5710148aa2bf6cab3c015b.html" target="_blank" rel="noopener"><strong>Fuzzy Search</strong></a> для оценки похожести строк.</p>
256<p>В целом нечёткий поиск может быть использован в разных сценариях, например:</p>
257<ul>
258<li>Для облегчения поиска пользователя, когда заранее может быть неизвестно точное наименование материала или номера документа.</li>
259<li>Для поиска по заранее определённым столбцам, когда пользователь ищет некоторый адрес вводя индекс или часть названия улицы.</li>
260<li>Для сопоставления распознанных данных в каком-нибудь OCR движке (который может иногда выдавать не 100% результат) с тем что лежит в системе.</li>
261</ul>
262<p><span id="more-7264"></span></p>
263<p>В ABAP есть встроенный механизм позволяющий оценить похожесть двух строк &#8212; функция <strong>distance</strong>, которая работает на базе алгоритма подсчёта расстояния <a href="../../wiki/Расстояние_Левенштейна.html" target="_blank" rel="noopener">Левенштейна</a>.</p>
264<p>Функция возвращает количество операций удаления, вставки и изменения, необходимых для преобразования одной строки в другую. Однако данная функция в отличие от Fuzzy Search не обладает той же гибкостью.</p>
265<h3>Fuzzy Search в средствах поиска</h3>
266<p>Если Вы работаете в более менее современных системах на базе СУБД HANA, то наверное уже замечали встроенный механизм нечёткого поиска при вводе в средствах поиска, например поиск по имени класса:</p>
267<p><a href="../../wp-content/uploads/2021/04/class_search.png" data-slb-active="1" data-slb-asset="1866869683" data-slb-internal="0" data-slb-group="7264"><img loading="lazy" class="alignnone size-full wp-image-7270" src="../../wp-content/uploads/2021/04/class_search.png" alt="" width="756" height="281" srcset="../../wp-content/uploads/2021/04/class_search.png 756w, ../../wp-content/uploads/2021/04/class_search-300x112.png 300w" sizes="(max-width: 756px) 100v
267w, 756px"></a></p>
268<p>В соответствующем СП выставлены параметры нечёткого поиска:</p>
269<p><a href="../../wp-content/uploads/2021/04/class_sh_conf.png" data-slb-active="1" data-slb-asset="2086633908" data-slb-internal="0" data-slb-group="7264"><img loading="lazy" class="alignnone size-full wp-image-7271" src="../../wp-content/uploads/2021/04/class_sh_conf.png" alt="" width="803" height="295" srcset="../../wp-content/uploads/2021/04/class_sh_conf.png 803w, ../../wp-content/uploads/2021/04/class_sh_conf-300x110.png 300w, ../../wp-content/uploads/2021/04/class_sh_conf-768x282.png 768w" sizes="(max-width: 803px) 100vw, 803px"></a></p>
270<p>В интерфейсах вызова СП появились соответствующие опции:</p><!-- Urvanov Syntax Highlighter v2.8.22 -->
271
272		<div id="urvanov-syntax-highlighter-618a047e7eb9c892962901" class="urvanov-syntax-highlighter-syntax crayon-theme-abapblog urvanov-syntax-highlighter-font-monospace urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover" style=" margin-bottom: 12px; clear: none; font-size: 12px !important; line-height: 15px !important;">
273		
274			<div class="urvanov-syntax-highlighter-plain-wrap"></div>
275			<div class="urvanov-syntax-highlighter-main" style="">
276				<table class="crayon-table">
277					<tr class="urvanov-syntax-highlighter-row">
278				<td class="crayon-nums " data-settings="show">
279					<div class="urvanov-syntax-highlighter-nums-content" style="font-size: 12px !important; line-height: 15px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7eb9c892962901-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7eb9c892962901-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7eb9c892962901-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7eb9c892962901-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7eb9c892962901-5">5</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7eb9c892962901-6">6</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7eb9c892962901-7">7</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7eb9c892962901-8">8</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7eb9c892962901-9">9</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7eb9c892962901-10">10</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7eb9c892962901-11">11</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7eb9c892962901-12">12</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7eb9c892962901-13">13</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7eb9c892962901-14">14</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7eb9c892962901-15">15</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7eb9c892962901-16">16</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7eb9c892962901-17">17</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7eb9c892962901-18">18</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7eb9c892962901-19">19</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7eb9c892962901-20">20</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7eb9c892962901-21">21</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7eb9c892962901-22">22</div><div class="crayon-num crayon-marked-num crayon-top" data-line="urvanov-syntax-highlighter-618a047e7eb9c892962901-23">23</div><div class="crayon-num crayon-marked-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7eb9c892962901-24">24</div><div class="crayon-num crayon-marked-num crayon-bottom" data-line="urvanov-syntax-highlighter-618a047e7eb9c892962901-25">25</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7eb9c892962901-26">26</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7eb9c892962901-27">27</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7eb9c892962901-28">28</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7eb9c892962901-29">29</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7eb9c892962901-30">30</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7eb9c892962901-31">31</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7eb9c892962901-32">32</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7eb9c892962901-33">33</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7eb9c892962901-34">34</div></div>
280				</td>
281						<td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7eb9c892962901-1"><span class="crayon-st">DATA</span><span class="crayon-o">:</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7eb9c892962901-2"><span class="crayon-h">&nbsp;&nbsp;</span>ls<span class="crayon-sy">_</span>shlp<span class="crayon-sy">_</span>descr<span class="crayon-h"> </span><span class="crayon-st">TYPE</span><span class="crayon-h"> </span>shlp<span class="crayon-sy">_</span>descr<span class="crayon-sy">,</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7eb9c892962901-3"><span class="crayon-h">&nbsp;&nbsp;</span>lv<span class="crayon-sy">_</span>rc<span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span class="crayon-st">LIKE</span><span class="crayon-h"> </span>sy<span class="crayon-o">-</span>subrc<span class="crayon-sy">,</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7eb9c892962901-4"><span class="crayon-h">&nbsp;&nbsp;</span>lt<span class="crayon-sy">_</span>values<span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp; </span><span class="crayon-st">TYPE</span><span class="crayon-h"> </span><span class="crayon-st">STANDARD</span><span class="crayon-h"> </span><span class="crayon-st">TABLE</span><span class="crayon-h"> </span><span class="crayon-st">OF</span><span class="crayon-h"> </span>ddshretval<span class="crayon-o">.</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7eb9c892962901-5">&nbsp;</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7eb9c892962901-6"><span class="crayon-st">PARAMETERS</span><span class="crayon-o">:</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7eb9c892962901-7"><span class="crayon-h">&nbsp;&nbsp;</span>p<span class="crayon-sy">_</span>req<span class="crayon-h"> </span><span class="crayon-st">TYPE</span><span class="crayon-h"> </span>string<span class="crayon-o">.</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7eb9c892962901-8">&nbsp;</div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7eb9c892962901-9"><span class="crayon-m">START-OF-SELECTION</span><span class="crayon-o">.</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7eb9c892962901-10"><span class="crayon-h">&nbsp;&nbsp;</span><span class="crayon-st">CONSTANTS</span><span class="crayon-o">:</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7eb9c892962901-11"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;</span>lc<span class="crayon-sy">_</span>search<span class="crayon-sy">_</span>help<span class="crayon-h"> </span><span class="crayon-st">TYPE</span><span class="crayon-h"> </span>shlpname<span class="crayon-h"> </span><span class="crayon-st">VALUE</span><span class="crayon-h"> </span><span class="crayon-s">'SEO_CLASSES_INTERFACES'</span><span class="crayon-o">.</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7eb9c892962901-12">&nbsp;</div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7eb9c892962901-13"><span class="crayon-h">&nbsp;&nbsp;</span><span class="crayon-st">CALL</span><span class="crayon-h"> </span><span class="crayon-st">FUNCTION</span><span class="crayon-h"> </span><span class="crayon-s">'F4IF_GET_SHLP_DESCR'</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7eb9c892962901-14"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">EXPORTING</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7eb9c892962901-15"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>shlpname<span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-e">lc_search_help</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7eb9c892962901-16"><span class="crayon-e">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>shlptype<span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-s">'SH'</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7eb9c892962901-17"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">IMPORTING</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7eb9c892962901-18"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>shlp<span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp; </span><span class="crayon-o">=</span><span class="crayon-h"> </span>ls<span class="crayon-sy">_</span>shlp<span class="crayon-sy">_</span>descr<span class="crayon-o">.</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7eb9c892962901-19">&nbsp;</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7eb9c892962901-20"><span class="crayon-h">&nbsp;&nbsp;</span>ls<span class="crayon-sy">_</span>shlp<span class="crayon-sy">_</span>descr<span class="crayon-o">-</span>textsearch<span class="crayon-o">-</span>fields<span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-st">VALUE</span><span class="crayon-h"> </span><span class="crayon-e">ddsh_textsearch_fields</span><span class="crayon-o">(</span><span class="crayon-h"> </span><span class="crayon-o">(</span><span class="crayon-h"> </span><span class="crayon-st">CONV</span><span class="crayon-h"> </span>#<span class="crayon-o">(</span><span class="crayon-h"> </span><span class="crayon-s">'NAME'</span><span class="crayon-h"> </span><span class="crayon-o">)</span><span class="crayon-h"> </span><span class="crayon-o">)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7eb9c892962901-21"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-o">(</span><span class="crayon-h"> </span><span class="crayon-st">CONV</span><span class="crayon-h"> </span>#<span class="crayon-o">(</span><span class="crayon-h"> </span><span class="crayon-s">'DESCRIPTION'</span><span class="crayon-h"> </span><span class="crayon-o">)</span><span class="crayon-h"> </span><span class="crayon-o">)</span><span class="crayon-h"> </span><span class="crayon-o">)</span><span class="crayon-o">.</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7eb9c892962901-22">&nbsp;</div><div class="crayon-line crayon-marked-line crayon-top" id="urvanov-syntax-highlighter-618a047e7eb9c892962901-23"><span class="crayon-h">&nbsp;&nbsp;</span>ls<span class="crayon-sy">_</span>shlp<span class="crayon-sy">_</span>descr<span class="crayon-o">-</span>textsearch<span class="crayon-o">-</span>request<span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span>p<span class="crayon-sy">_</span>req<span class="crayon-o">.</span></div><div class="crayon-line crayon-marked-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7eb9c892962901-24"><span class="crayon-h">&nbsp;&nbsp;</span>ls<span class="crayon-sy">_</span>shlp<span class="crayon-sy">_</span>descr<span class="crayon-o">-</span>intdescr<span class="crayon-o">-</span>fuzzy<span class="crayon-sy">_</span>search<span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span>abap<span class="crayon-sy">_</span>true<span class="crayon-o">.</span></div><div class="crayon-line crayon-marked-line crayon-bottom" id="urvanov-syntax-highlighter-618a047e7eb9c892962901-25"><span class="crayon-h">&nbsp;&nbsp;</span>ls<span class="crayon-sy">_</span>shlp<span class="crayon-sy">_</span>descr<span class="crayon-o">-</span>intdescr<span class="crayon-o">-</span>fuzzy<span class="crayon-sy">_</span>similarity<span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-s">
281'0.8'</span><span class="crayon-o">.</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7eb9c892962901-26">&nbsp;</div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7eb9c892962901-27"><span class="crayon-h">&nbsp;&nbsp;</span><span class="crayon-st">CALL</span><span class="crayon-h"> </span><span class="crayon-st">FUNCTION</span><span class="crayon-h"> </span><span class="crayon-s">'F4IF_SELECT_VALUES'</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7eb9c892962901-28"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">EXPORTING</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7eb9c892962901-29"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>shlp<span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-e">ls_shlp_descr</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7eb9c892962901-30"><span class="crayon-e">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>maxrows<span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-cn">12</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7eb9c892962901-31"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">TABLES</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7eb9c892962901-32"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>record<span class="crayon-sy">_</span>tab<span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span>lt<span class="crayon-sy">_</span>values<span class="crayon-o">.</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7eb9c892962901-33">&nbsp;</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7eb9c892962901-34"><span class="crayon-h">&nbsp;&nbsp;</span>cl<span class="crayon-sy">_</span>demo<span class="crayon-sy">_</span>output<span class="crayon-o">=</span><span class="crayon-o">&gt;</span><span class="crayon-e">display</span><span class="crayon-o">(</span><span class="crayon-h"> </span>lt<span class="crayon-sy">_</span>values<span class="crayon-h"> </span><span class="crayon-o">)</span><span class="crayon-o">.</span></div></div></td>
282					</tr>
283				</table>
284			</div>
285		</div>
286<!-- [Format Time: 0.0040 seconds] -->
287<p>Внутри вызывается движок SADL и преобразование к Native SQL следующего вида:</p>
288<p><a href="../../wp-content/uploads/2021/04/sql_trace.png" data-slb-active="1" data-slb-asset="117590559" data-slb-internal="0" data-slb-group="7264"><img loading="lazy" class="alignnone size-full wp-image-7272" src="../../wp-content/uploads/2021/04/sql_trace.png" alt="" width="599" height="440" srcset="../../wp-content/uploads/2021/04/sql_trace.png 599w, ../../wp-content/uploads/2021/04/sql_trace-300x220.png 300w" sizes="(max-width: 599px) 100vw, 599px"></a></p>
289<p>Обратите внимание на режим поиска: similarCalculationMode=<strong>search</strong>. Позже рассмотрим этот и другие режимы когда будем рассматривать сопоставления строк.</p>
290<h3>Синтаксис вызова Fuzzy Search в SQLScript</h3>
291<p>Упрощённый синтаксис вызова Fuzzy Search в SQLScript выглядит следующим образом:</p><!-- Urvanov Syntax Highlighter v2.8.22 -->
292
293		<div id="urvanov-syntax-highlighter-618a047e7eba8666260600" class="urvanov-syntax-highlighter-syntax crayon-theme-abapblog urvanov-syntax-highlighter-font-monospace urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover" style=" margin-bottom: 12px; clear: none; font-size: 12px !important; line-height: 15px !important;">
294		
295			<div class="urvanov-syntax-highlighter-plain-wrap"></div>
296			<div class="urvanov-syntax-highlighter-main" style="">
297				<table class="crayon-table">
298					<tr class="urvanov-syntax-highlighter-row">
299				<td class="crayon-nums " data-settings="show">
300					<div class="urvanov-syntax-highlighter-nums-content" style="font-size: 12px !important; line-height: 15px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7eba8666260600-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7eba8666260600-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7eba8666260600-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7eba8666260600-4">4</div></div>
301				</td>
302						<td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7eba8666260600-1"><span class="crayon-r">SELECT</span><span class="crayon-h"> </span>SCORE()<span class="crayon-h"> </span><span class="crayon-r">AS</span><span class="crayon-h"> </span>score,<span class="crayon-h"> </span>*</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7eba8666260600-2"><span class="crayon-r">FROM</span><span class="crayon-h"> </span>table_name</div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7eba8666260600-3"><span class="crayon-r">WHERE</span><span class="crayon-h"> </span>CONTAINS(column_name,<span class="crayon-h"> </span><span class="crayon-s">
302'123'</span>,<span class="crayon-h"> </span>FUZZY(0.8))</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7eba8666260600-4"><span class="crayon-r">ORDER</span><span class="crayon-h"> </span><span class="crayon-r">BY</span><span class="crayon-h"> </span>score<span class="crayon-h"> </span><span class="crayon-r">DESC</span>;</div></div></td>
303					</tr>
304				</table>
305			</div>
306		</div>
307<!-- [Format Time: 0.0047 seconds] -->
308<p>В данном запросе мы найдём все строки в таблице table_name, где для поля column_name будут найдены значения, уровень похожести которых на &#171;123&#187; будет более 0.8.</p>
309<ul>
310<li>Уровень похожести определяется числом от 0 до 1, где 1 &#8212; полное соответствие.</li>
311<li>Значение 0.0 переданное в функцию FUZZY будет обозначать выборку всех значений &gt; 0.</li>
312<li>Функция SCORE() выдаёт результат оценки похожести.</li>
313</ul>
314<p>Функция CONTAINS может быть использована для разного рода поиска, но в данном случае используется именно нечёткий поиск &#8212; функция FUZZY.</p>
315<p>Функция FUZZY можно настраивать через передачу параметров:</p><!-- Urvanov Syntax Highlighter v2.8.22 -->
316
317		<div id="urvanov-syntax-highlighter-618a047e7ebac241803350" class="urvanov-syntax-highlighter-syntax crayon-theme-abapblog urvanov-syntax-highlighter-font-monospace urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover" style=" margin-bottom: 12px; clear: none; font-size: 12px !important; line-height: 15px !important;">
318		
319			<div class="urvanov-syntax-highlighter-plain-wrap"></div>
320			<div class="urvanov-syntax-highlighter-main" style="">
321				<table class="crayon-table">
322					<tr class="urvanov-syntax-highlighter-row">
323				<td class="crayon-nums " data-settings="show">
324					<div class="urvanov-syntax-highlighter-nums-content" style="font-size: 12px !important; line-height: 15px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebac241803350-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebac241803350-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebac241803350-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebac241803350-4">4</div></div>
325				</td>
326						<td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebac241803350-1"><span class="crayon-r">SELECT</span><span class="crayon-h"> </span>SCORE()<span class="crayon-h"> </span><span class="crayon-r">AS</span><span class="crayon-h"> </span>score,<span class="crayon-h"> </span>*</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebac241803350-2"><span class="crayon-r">FROM</span><span class="crayon-h"> </span>table_name</div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebac241803350-3"><span class="crayon-r">WHERE</span><span class="crayon-h"> </span>CONTAINS(column_name,<span class="crayon-h"> </span><span class="crayon-s">'Значение'</span>,<span class="crayon-h"> </span>FUZZY(0.8,<span class="crayon-h"> </span><span class="crayon-s">'option1=value1, option2=value2'</span>))</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebac241803350-4"><span class="crayon-r">ORDER</span><span class="crayon-h"> </span><span class="crayon-r">BY</span><span class="crayon-h"> </span>score<span class="crayon-h"> </span><span class="crayon-r">DESC</span>;</div></div></td>
327					</tr>
328				</table>
329			</div>
330		</div>
331<!-- [Format Time: 0.0005 seconds] -->
332<p>Поиск может быть выполнен с учётом нескольких столбцов:</p><!-- Urvanov Syntax Highlighter v2.8.22 -->
333
334		<div id="urvanov-syntax-highlighter-618a047e7ebaf979166597" class="urvanov-syntax-highlighter-syntax crayon-theme-abapblog urvanov-syntax-highlighter-font-monospace urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover" style=" margin-bottom: 12px; clear: none; font-size: 12px !important; line-height: 15px !important;">
335		
336			<div class="urvanov-syntax-highlighter-plain-wrap"></div>
337			<div class="urvanov-syntax-highlighter-main" style="">
338				<table class="crayon-table">
339					<tr class="urvanov-syntax-highlighter-row">
340				<td class="crayon-nums " data-settings="show">
341					<div class="urvanov-syntax-highlighter-nums-content" style="font-size: 12px !important; line-height: 15px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebaf979166597-1">1</div></div>
342				</td>
343						<td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebaf979166597-1"><span class="crayon-r">SELECT</span><span class="crayon-h"> </span>...<span class="crayon-h"> </span><span class="crayon-r">WHERE</span><span class="crayon-h"> </span>CONTAINS((col1,<span class="crayon-h"> </span>col2,<span class="crayon-h"> </span>col3),<span class="crayon-h"> </span><span class="crayon-s">
343'term1 term2 term3'</span>,<span class="crayon-h"> </span>FUZZY(0.7))<span class="crayon-h"> </span>...;</div></div></td>
344					</tr>
345				</table>
346			</div>
347		</div>
348<!-- [Format Time: 0.0003 seconds] -->
349<p>Внутри функции CONTAINS можно использовать специальный синтаксис запросов включающий в себя зарезервированные слова и символы:</p>
350<ul>
351<li>CONTAINS(col, &#8216;sap OR hana&#8217;), где OR (чувствителен к регистру) обозначает ИЛИ, выбрать все значения где есть sap или hana.</li>
352<li>CONTAINS(col, &#8216;sap -hana&#8217;), выбрать все значения где есть sap, но не hana.</li>
353<li>CONTAINS(col, &#8216;&#187;sap hana&#187;&#8216;), если брать в двойных кавычках поиск будет по фразе целиком.</li>
354<li>* (%) или ?, активируют поиск по шаблону, при этом нечёткий поиск выполняться не будет.</li>
355</ul>
356<p>Следует учитывать что при передаче параметров в функцию FUZZY одновременно с вышеуказанными параметрами CONTAINS запрос разбивается на подзапросы:</p><!-- Urvanov Syntax Highlighter v2.8.22 -->
357
358		<div id="urvanov-syntax-highlighter-618a047e7ebb1492487945" class="urvanov-syntax-highlighter-syntax crayon-theme-abapblog urvanov-syntax-highlighter-font-monospace urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover" style=" margin-bottom: 12px; clear: none; font-size: 12px !important; line-height: 15px !important;">
359		
360			<div class="urvanov-syntax-highlighter-plain-wrap"></div>
361			<div class="urvanov-syntax-highlighter-main" style="">
362				<table class="crayon-table">
363					<tr class="urvanov-syntax-highlighter-row">
364				<td class="crayon-nums " data-settings="show">
365					<div class="urvanov-syntax-highlighter-nums-content" style="font-size: 12px !important; line-height: 15px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebb1492487945-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebb1492487945-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebb1492487945-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebb1492487945-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebb1492487945-5">5</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebb1492487945-6">6</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebb1492487945-7">7</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebb1492487945-8">8</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebb1492487945-9">9</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebb1492487945-10">10</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebb1492487945-11">11</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebb1492487945-12">12</div></div>
366				</td>
367						<td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebb1492487945-1"><span class="crayon-r">SELECT</span><span class="crayon-h"> </span>...<span class="crayon-h"> </span><span class="crayon-r">WHERE</span><span class="crayon-h"> </span>CONTAINS(col1,<span class="crayon-h"> </span><span class="crayon-s">'terma OR termb'</span>,<span class="crayon-h"> </span>FUZZY(0.7,<span class="crayon-h"> </span><span class="crayon-s">'opt1=val1, opt2=val2'</span>))<span class="crayon-h"> </span>...;</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebb1492487945-2"><span class="crayon-h"> </span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebb1492487945-3"><span class="crayon-c">/* будет преобразован в два подзапроса */</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebb1492487945-4"><span class="crayon-r">SELECT</span><span class="crayon-h"> </span>...<span class="crayon-h"> </span><span class="crayon-r">WHERE</span><span class="crayon-h"> </span>(CONTAINS(col1,<span class="crayon-h"> </span><span class="crayon-s">'terma'</span>,<span class="crayon-h"> </span>FUZZY(0.7,<span class="crayon-h"> </span><span class="crayon-s">'opt1=val1, opt2=val2'</span>))</div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebb1492487945-5"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-r">OR</span><span class="crayon-h">&nbsp;&nbsp;</span>CONTAINS(col1,<span class="crayon-h"> </span><span class="crayon-s">'termb'</span>,<span class="crayon-h"> </span>FUZZY(0.7,<span class="crayon-h"> </span><span class="crayon-s">'opt1=val1, opt2=val2'</span>)))<span class="crayon-h"> </span>...;</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebb1492487945-6"><span class="crayon-h"> </span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebb1492487945-7"><span class="crayon-h"> </span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebb1492487945-8"><span class="crayon-r">SELECT</span><span class="crayon-h"> </span>...<span class="crayon-h"> </span><span class="crayon-r">WHERE</span><span class="crayon-h"> </span>CONTAINS(col1,<span class="crayon-h"> </span><span class="crayon-s">'this is a "search term"'</span>,<span class="crayon-h"> </span>FUZZY(0.7,<span class="crayon-h"> </span><span class="crayon-s">'opt1=val1, opt2=val2'</span>))<span class="crayon-h"> </span>...;</div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebb1492487945-9"><span class="crayon-h"> </span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebb1492487945-10"><span class="crayon-c">/* Так же будет преобразован в несколько подзапросов */</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebb1492487945-11"><span class="crayon-r">SELECT</span><span class="crayon-h"> </span>...<span class="crayon-h"> </span><span class="crayon-r">WHERE</span><span class="crayon-h"> </span>(CONTAINS(col1,<span class="crayon-h"> </span><span class="crayon-s">'this is a'</span>,<span class="crayon-h"> </span>FUZZY(0.7,<span class="crayon-h"> </span><span class="crayon-s">'opt1=val1, opt2=val2'</span>))</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebb1492487945-12"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span class="crayon-r">AND</span><span class="crayon-h">&nbsp;&nbsp;</span>CONTAINS(col1,<span class="crayon-h"> </span><span class="crayon-s">'"search term"'</span>,<span class="crayon-h"> </span>FUZZY(0.7,<span class="crayon-h"> </span><span class="crayon-s">'opt1=val1, opt2=val2'</span>)))<span class="crayon-h"> </span>...;</div></div></td>
368					</tr>
369				</table>
370			</div>
371		</div>
372<!-- [Format Time: 0.0011 seconds] -->
373<p>Аналогичное поведение будет при использовании поиска по нескольким столбцам:</p><!-- Urvanov Syntax Highlighter v2.8.22 -->
374
375		<div id="urvanov-syntax-highlighter-618a047e7ebc9486478099" class="urvanov-syntax-highlighter-syntax crayon-theme-abapblog urvanov-syntax-highlighter-font-monospace urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover" style=" margin-bottom: 12px; clear: none; font-size: 12px !important; line-height: 15px !important;">
376		
377			<div class="urvanov-syntax-highlighter-plain-wrap"></div>
378			<div class="urvanov-syntax-highlighter-main" style="">
379				<table class="crayon-table">
380					<tr class="urvanov-syntax-highlighter-row">
381				<td class="crayon-nums " data-settings="show">
382					<div class="urvanov-syntax-highlighter-nums-content" style="font-size: 12px !important; line-height: 15px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebc9486478099-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebc9486478099-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebc9486478099-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebc9486478099-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebc9486478099-5">5</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebc9486478099-6">6</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebc9486478099-7">7</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebc9486478099-8">8</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebc9486478099-9">9</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebc9486478099-10">10</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebc9486478099-11">11</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebc9486478099-12">12</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebc9486478099-13">13</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebc9486478099-14">14</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebc9486478099-15">15</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebc9486478099-16">16</div></div>
383				</td>
384						<td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebc9486478099-1"><span class="crayon-r">SELECT</span><span class="crayon-h"> </span>...<span class="crayon-h"> </span><span class="crayon-r">WHERE</span><span class="crayon-h"> </span>CONTAINS((col1,<span class="crayon-h"> </span>col2),<span class="crayon-h"> </span><span class="crayon-s">'terma termb'</span>,<span class="crayon-h"> </span>FUZZY((0.7,<span class="crayon-h"> </span><span class="crayon-s">'opt1=val1, opt2=val2'</span>),<span class="crayon-h"> </span>(0.9,<span class="crayon-h"> </span><span class="crayon-s">'opt3=val3'</span>)))<span class="crayon-h"> </span>...;</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebc9486478099-2"><span class="crayon-h"> </span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebc9486478099-3"><span class="crayon-c">/* Будет выполнено несколько подзапросов */</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebc9486478099-4"><span class="crayon-r">SELECT</span><span class="crayon-h"> </span>...<span class="crayon-h"> </span><span class="crayon-r">WHERE</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebc9486478099-5"><span class="crayon-h"> </span>(<span class="crayon-h"> </span>CONTAINS(col1,<span class="crayon-h"> </span><span class="crayon-s">'terma'</span>,<span class="crayon-h"> </span>FUZZY(0.7,<span class="crayon-h"> </span><span class="crayon-s">'opt1=val1, opt2=val2'</span>))<span class="crayon-h"> </span><span class="crayon-r">AND</span><span class="crayon-h"> </span>CONTAINS(col1,<span class="crayon-h"> </span><span class="crayon-s">'termb'</span>,<span class="crayon-h"> </span>FUZZY(0.7,<span class="crayon-h"> </span><span class="crayon-s">'opt1=val1, opt2=val2'</span>))<span class="crayon-h"> </span>)</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebc9486478099-6"><span class="crayon-r">OR</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebc9486478099-7"><span class="crayon-h"> </span>(<span class="crayon-h"> </span>CONTAINS(col1,<span class="crayon-h"> </span><span class="crayon-s">'terma'</span>,<span class="crayon-h"> </span>FUZZY(0.7,<span class="crayon-h"> </span><span class="crayon-s">'opt1=val1, opt2=val2'</span>))<span class="crayon-h"> </span><span class="crayon-r">AND</span><span class="crayon-h"> </span>CONTAINS(col2,<span class="crayon-h"> </span><span class="crayon-s">'termb'</span>,<span class="crayon-h"> </span>FUZZY((0.9,<span class="crayon-h"> </span><span class="crayon-s">'opt3=val3'</span>))<span class="crayon-h"> </span>)</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebc9486478099-8"><span class="crayon-r">OR</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebc9486478099-9"><span class="crayon-h"> </span>(<span class="crayon-h"> </span>CONTAINS(col2,<span class="crayon-h"> </span><span class="crayon-s">'terma'</span>,<span class="crayon-h"> </span>FUZZY((0.9,<span class="crayon-h"> </span><span class="crayon-s">'opt3=val3'</span>))<span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span class="crayon-r">AND</span><span class="crayon-h"> </span>CONTAINS(col1,<span class="crayon-h"> </span><span class="crayon-s">'termb'</span>,<span class="crayon-h"> </span>FUZZY(0.7,<span class="crayon-h"> </span><span class="crayon-s">'opt1=val1, opt2=val2'</span>))<span class="crayon-h"> </span>)</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebc9486478099-10"><span class="crayon-r">OR</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebc9486478099-11"><span class="crayon-h"> </span>(<span class="crayon-h"> </span>CONTAINS(col2,<span class="crayon-h"> </span><span class="crayon-s">'terma'</span>,<span class="crayon-h"> </span>FUZZY((0.9,<span class="crayon-h"> </span><span class="crayon-s">'opt3=val3'</span>))<span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span class="crayon-r">AND</span><span class="crayon-h"> </span>CONTAINS(col2,<span class="crayon-h"> </span><span class="crayon-s">'termb'</span>,<span class="crayon-h"> </span>FUZZY((0.9,<span class="crayon-h"> </span><span class="crayon-s">'opt3=val3'</span>))<span class="crayon-h"> </span>)</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebc9486478099-12"><span class="crayon-r">OR</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebc9486478099-13"><span class="crayon-h"> </span>CONTAINS(col1,<span class="crayon-h"> </span><span class="crayon-s">'"terma termb"'</span>,<span class="crayon-h"> </span>FUZZY(0.7,<span class="crayon-h"> </span><span class="crayon-s">'opt1=val1, opt2=val2'</span>))</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebc9486478099-14"><span class="crayon-r">OR</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebc9486478099-15"><span class="crayon-h"> </span>CONTAINS(col2,<span class="crayon-h"> </span><span class="crayon-s">'"terma termb"'</span>,<span class="crayon-h"> </span>FUZZY((0.9,<span class="crayon-h"> </span><span class="crayon-s">'opt3=val3'</span>))</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebc9486478099-16">...;</div></div></td>
385					</tr>
386				</table>
387			</div>
388		</div>
389<!-- [Format Time: 0.0016 seconds] -->
390<p>Если внутри запроса используется поиск по Ð
390½ÐµÑÐºÐ¾Ð»ÑŒÐºÐ¸Ð¼ полям, функция SCORE будет возвращать средневзвешенное значение по всем полям используемым в запросе:</p><!-- Urvanov Syntax Highlighter v2.8.22 -->
391
392		<div id="urvanov-syntax-highlighter-618a047e7ebcc468153052" class="urvanov-syntax-highlighter-syntax crayon-theme-abapblog urvanov-syntax-highlighter-font-monospace urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover" style=" margin-bottom: 12px; clear: none; font-size: 12px !important; line-height: 15px !important;">
393		
394			<div class="urvanov-syntax-highlighter-plain-wrap"></div>
395			<div class="urvanov-syntax-highlighter-main" style="">
396				<table class="crayon-table">
397					<tr class="urvanov-syntax-highlighter-row">
398				<td class="crayon-nums " data-settings="show">
399					<div class="urvanov-syntax-highlighter-nums-content" style="font-size: 12px !important; line-height: 15px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebcc468153052-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebcc468153052-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebcc468153052-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebcc468153052-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebcc468153052-5">5</div></div>
400				</td>
401						<td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebcc468153052-1"><span class="crayon-r">SELECT</span><span class="crayon-h"> </span>SCORE(),<span class="crayon-h"> </span>col1,<span class="crayon-h"> </span>col2,<span class="crayon-h"> </span>...<span class="crayon-h"> </span><span class="crayon-r">FROM</span><span class="crayon-h"> </span>tab</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebcc468153052-2"><span class="crayon-r">WHERE</span><span class="crayon-h"> </span>CONTAINS(col1,<span class="crayon-h"> </span><span class="crayon-s">'x y z'</span>)</div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebcc468153052-3"><span class="crayon-h">&nbsp;&nbsp;</span><span class="crayon-r">AND</span><span class="crayon-h"> </span>CONTAINS(col2,<span class="crayon-h"> </span><span class="crayon-s">'a b c'</span>)</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebcc468153052-4"><span class="crayon-h">&nbsp;&nbsp;</span><span class="crayon-r">AND</span><span class="crayon-h"> </span>...</div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebcc468153052-5"><span class="crayon-r">ORDER</span><span class="crayon-h"> </span><span class="crayon-r">BY</span><span class="crayon-h"> </span>SCORE()<span class="crayon-h"> </span><span class="crayon-r">DESC</span>;</div></div></td>
402					</tr>
403				</table>
404			</div>
405		</div>
406<!-- [Format Time: 0.0006 seconds] -->
407<p>Вес каждого поля по умолчанию равен 1 (т.е. при оценке они равны между собой), допускается ручное указание весов:</p><!-- Urvanov Syntax Highlighter v2.8.22 -->
408
409		<div id="urvanov-syntax-highlighter-618a047e7ebcf246226049" class="urvanov-syntax-highlighter-syntax crayon-theme-abapblog urvanov-syntax-highlighter-font-monospace urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover" style=" margin-bottom: 12px; clear: none; font-size: 12px !important; line-height: 15px !important;">
410		
411			<div class="urvanov-syntax-highlighter-plain-wrap"></div>
412			<div class="urvanov-syntax-highlighter-main" style="">
413				<table class="crayon-table">
414					<tr class="urvanov-syntax-highlighter-row">
415				<td class="crayon-nums " data-settings="show">
416					<div class="urvanov-syntax-highlighter-nums-content" style="font-size: 12px !important; line-height: 15px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebcf246226049-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebcf246226049-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebcf246226049-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebcf246226049-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebcf246226049-5">5</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebcf246226049-6">6</div></div>
417				</td>
418						<td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebcf246226049-1"><span class="crayon-r">SELECT</span><span class="crayon-h"> </span>SCORE(),<span class="crayon-h"> </span>...<span class="crayon-h"> </span><span class="crayon-r">FROM</span><span class="crayon-h"> </span>tab</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebcf246226049-2"><span class="crayon-r">WHERE</span><span class="crayon-h"> </span>CONTAINS((col1,<span class="crayon-h"> </span>col2,<span class="crayon-h"> </span>col3),<span class="crayon-h"> </span><span class="crayon-s">'a b c'</span>,<span class="crayon-h"> </span>FUZZY(0.8),<span class="crayon-h"> </span>WEIGHT(1.0,<span class="crayon-h"> </span>0.5,<span class="crayon-h"> </span>0.5))</div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebcf246226049-3"><span class="crayon-h">&nbsp;&nbsp;</span><span class="crayon-r">AND</span><span class="crayon-h"> </span>CONTAINS(col4,<span class="crayon-h"> </span><span class="crayon-s">'x y z'</span>,<span class="crayon-h"> </span>FUZZY(0.7),<span class="crayon-h"> </span>WEIGHT(0.7))</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebcf246226049-4"><span class="crayon-h">&nbsp;&nbsp;</span><span class="crayon-r">AND</span><span class="crayon-h"> </span>CONTAINS(col5,<span class="crayon-h"> </span><span class="crayon-s">'u v w'</span>,<span class="crayon-h"> </span>FUZZY(0.7))</div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebcf246226049-5"><span class="crayon-h">&nbsp;&nbsp;</span><span class="crayon-r">AND</span><span class="crayon-h"> </span>...</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebcf246226049-6"><span class="crayon-r">ORDER</span><span class="crayon-h"> </span><span class="crayon-r">BY</span><span class="crayon-h"> </span>SCORE()<span class="crayon-h"> </span><span class="crayon-r">DESC</span>;</div></div></td>
419					</tr>
420				</table>
421			</div>
422		</div>
423<!-- [Format Time: 0.0008 seconds] -->
424<p></p>
425<h3>Оценка похожести строк</h3>
426<p>С помощью опции similarCalculationMode мы можем определить то, каким образом будет оцениваться похожесть строк.</p>
427<p>Похожесть строки А (строка поиска) по отношению к строке Б (строка в таблице) оценивается на основании следующих критериев:</p>
428<ul>
429<li>общие символы в А и Б</li>
430<li>дополнительные символы в строке А</li>
431<li>дополнительные символы в строке Б</li>
432<li>ошибочные символы (опечатки) в строке А</li>
433</ul>
434<p>По своей сути допустимые для выставления режимы сопоставления отличаются влиянием вышеуказанных критериев на результат:</p>
435
436<div class="wpdt-c row wpDataTableContainerSimpleTable wpDataTables wpDataTablesWrapper
437">
438        <table id="wpdtSimpleTable-1" class="wpdtSimpleTable wpDataTable" style="border-collapse:collapse;
439                   border-spacing:0px;" data-column="4" data-rows="8" data-wpid="1" data-responsive="1" data-has-header="1">
440
441                    <thead>        <tr class="wpdt-cell-row ">
442                            <th class="wpdt-cell wpdt-bold wpdt-valign-middle" data-cell-id="A1" data-col-index="0" data-row-index="0" style=" width:25.170998632%;                padding:5px;
443                ">
444                                Режим                </th>
445                                            <th class="wpdt-cell wpdt-bold wpdt-valign-middle" data-cell-id="B1" data-col-index="1" data-row-index="0" style=" width:19.9726402189%;                padding:5px;
446                ">
447                                Опечатки                </th>
448                                            <th class="wpdt-cell wpdt-bold wpdt-valign-middle" data-cell-id="C1" data-col-index="2" data-row-index="0" style=" width:23.2558139535%;                padding:5px;
449                ">
450                                Доп. символы в А                </th>
451                                            <th class="wpdt-cell wpdt-bold wpdt-valign-middle" data-cell-id="D1" data-col-index="3" data-row-index="0" style=" width:31.6005471956%;                padding:5px;
452                ">
453                                Доп. символы в Б                </th>
454                                        </tr>
455                    <tbody>        <tr class="wpdt-cell-row odd">
456                            <td class="wpdt-cell wpdt-valign-middle" data-cell-id="A2" data-col-index="0" data-row-index="1" style="                padding:5px;
457                ">
458                                compare (по умолчанию)                </td>
459                                            <td class="wpdt-cell wpdt-valign-middle" data-cell-id="B2" data-col-index="1" data-row-index="1" style="                padding:5px;
460                ">
461                                среднее                </td>
462                                            <td class="wpdt-cell wpdt-valign-middle" data-cell-id="C2" data-col-index="2" data-row-index="1" style="                padding:5px;
463                ">
464                                высокое                </td>
465                                            <td class="wpdt-cell wpdt-valign-middle" data-cell-id="D2" data-col-index="3" data-row-index="1" style="                padding:5px;
466                ">
467                                высокое                </td>
468                                        </tr>
469                            <tr class="wpdt-cell-row even">
470                            <td class="wpdt-cell wpdt-valign-middle" data-cell-id="A3" data-col-index="0" data-row-index="2" style="                padding:5px;
471                ">
472                                search                </td>
473                                            <td class="wpdt-cell wpdt-valign-middle" data-cell-id="B3" data-col-index="1" data-row-index="2" style="                padding:5px;
474                ">
475                                высокое                </td>
476                                            <td class="wpdt-cell wpdt-valign-middle" data-cell-id="C3" data-col-index="2" data-row-index="2" style="                padding:5px;
477                ">
478                                высокое                </td>
479                                            <td class="wpdt-cell wpdt-valign-middle" data-cell-id="D3" data-col-index="3" data-row-index="2" style="                padding:5px;
480                ">
481                                низкое                </td>
482                                        </tr>
483                            <tr class="wpdt-cell-row odd">
484                            <td class="wpdt-cell wpdt-valign-middle" data-cell-id="A4" data-col-index="0" data-row-index="3" style="                padding:5px;
485                ">
486                                searchCompare                </td>
487                                            <td class="wpdt-cell wpdt-valign-middle" data-cell-id="B4" data-col-index="1" data-row-index="3" style="                padding:5px;
488                ">
489                                среднее/высокое                </td>
490                                            <td class="wpdt-cell wpdt-valign-middle" data-cell-id="C4" data-col-index="2" data-row-index="3" style="                padding:5px;
491                ">
492                                высокое                </td>
493                                            <td class="wpdt-cell wpdt-valign-middle" data-cell-id="D4" data-col-index="3" data-row-index="3" style="                padding:5px;
494                ">
495                                низкое                </td>
496                                        </tr>
497                            <tr class="wpdt-cell-row even">
498                            <td class="wpdt-cell wpdt-valign-middle" data-cell-id="A5" data-col-index="0" data-row-index="4" style="                padding:5px;
499                ">
500                                symmetricsearch                </td>
501                                            <td class="wpdt-cell wpdt-valign-middle" data-cell-id="B5" data-col-index="1" data-row-index="4" style="                padding:5px;
502                ">
503                                высокое                </td>
504                                            <td class="wpdt-cell wpdt-valign-middle" data-cell-id="C5" data-col-index="2" data-row-index="4" style="                padding:5px;
505                ">
506                                среднее                </td>
507                                            <td class="wpdt-cell wpdt-valign-middle" data-cell-id="D5" data-col-index="3" data-row-index="4" style="                padding:5px;
508                ">
509                                среднее                </td>
510                                        </tr>
511                            <tr class="wpdt-cell-row odd">
512                            <td class="wpdt-cell wpdt-valign-middle" data-cell-id="A6" data-col-index="0" data-row-index="5" style="                padding:5px;
513                ">
514                                substringsearch                </td>
515                                            <td class="wpdt-cell wpdt-valign-middle" data-cell-id="B6" data-col-index="1" data-row-index="5" style="                padding:5px;
516                ">
517                                высокое                </td>
518                                            <td class="wpdt-cell wpdt-valign-middle" data-cell-id="C6" data-col-index="2" data-row-index="5" style="                padding:5px;
519                ">
520                                высокое                </td>
521                                            <td class="wpdt-cell wpdt-valign-middle" data-cell-id="D6" data-col-index="3" data-row-index="5" style="                padding:5px;
522                ">
523                                низкое                </td>
524                                        </tr>
525                            <tr class="wpdt-cell-row even">
526                            <td class="wpdt-cell wpdt-valign-middle" data-cell-id="A7" data-col-index="0" data-row-index="6" style="                padding:5px;
527                ">
528                                typeAhead                </td>
529                                            <td class="wpdt-cell wpdt-valign-middle" data-cell-id="B7" data-col-index="1" data-row-index="6" style="                padding:5px;
530                ">
531                                высокое                </td>
532                                            <td class="wpdt-cell wpdt-valign-middle" data-cell-id="C7" data-col-index="2" data-row-index="6" style="                padding:5px;
533                ">
534                                очень высокое             
534   </td>
535                                            <td class="wpdt-cell wpdt-valign-middle" data-cell-id="D7" data-col-index="3" data-row-index="6" style="                padding:5px;
536                ">
537                                низкое                </td>
538                                        </tr>
539                            <tr class="wpdt-cell-row odd">
540                            <td class="wpdt-cell wpdt-valign-middle" data-cell-id="A8" data-col-index="0" data-row-index="7" style="                padding:5px;
541                ">
542                                flexible                </td>
543                                            <td class="wpdt-cell wpdt-valign-middle" data-cell-id="B8" data-col-index="1" data-row-index="7" style="                padding:5px;
544                ">
545                                управляется параметром errorDevaluate                </td>
546                                            <td class="wpdt-cell wpdt-valign-middle" data-cell-id="C8" data-col-index="2" data-row-index="7" style="                padding:5px;
547                ">
548                                очень высокое                </td>
549                                            <td class="wpdt-cell wpdt-valign-middle" data-cell-id="D8" data-col-index="3" data-row-index="7" style="                padding:5px;
550                ">
551                                управляется параметром lengthTolerance                </td>
552                                        </tr>
553                    </tbody></thead></table>
554</div><style id='wpdt-custom-style-1'>
555</style>
556
557<p>Рассмотрим на примерах:</p>
558
559<div class="wpdt-c row wpDataTableContainerSimpleTable wpDataTables wpDataTablesWrapper
560">
561        <table id="wpdtSimpleTable-2" class="wpdtSimpleTable wpDataTable" style="border-collapse:collapse;
562                   border-spacing:0px;" data-column="5" data-rows="7" data-wpid="2" data-responsive="1" data-has-header="1">
563
564                    <thead>        <tr class="wpdt-cell-row ">
565                            <th class="wpdt-cell wpdt-bold" data-cell-id="A1" data-col-index="0" data-row-index="0" style=" width:28.0487804878%;                padding:5px;
566                ">
567                                Строка А                </th>
568                                            <th class="wpdt-cell wpdt-bold" data-cell-id="B1" data-col-index="1" data-row-index="0" style=" width:28.1842818428%;                padding:5px;
569                ">
570                                Строка Б                </th>
571                                            <th class="wpdt-cell wpdt-bold" data-cell-id="C1" data-col-index="2" data-row-index="0" style=" width:13.5501355014%;                padding:5px;
572                ">
573                                compare                </th>
574                                            <th class="wpdt-cell wpdt-bold" data-cell-id="D1" data-col-index="3" data-row-index="0" style=" width:13.5501355014%;                padding:5px;
575                ">
576                                typeAhead                </th>
577                                            <th class="wpdt-cell wpdt-bold" data-cell-id="E1" data-col-index="4" data-row-index="0" style=" width:16.6666666667%;                padding:5px;
578                ">
579                                searchCompare                </th>
580                                        </tr>
581                    <tbody>        <tr class="wpdt-cell-row odd">
582                            <td class="wpdt-cell " data-cell-id="A2" data-col-index="0" data-row-index="1" style="                padding:5px;
583                ">
584                                search                </td>
585                                            <td class="wpdt-cell " data-cell-id="B2" data-col-index="1" data-row-index="1" style="                padding:5px;
586                ">
587                                searching                </td>
588                                            <td class="wpdt-cell " data-cell-id="C2" data-col-index="2" data-row-index="1" style="                padding:5px;
589                ">
590                                0.76                </td>
591                                            <td class="wpdt-cell " data-cell-id="D2" data-col-index="3" data-row-index="1" style="                padding:5px;
592                ">
593                                1.0                </td>
594                                            <td class="wpdt-cell " data-cell-id="E2" data-col-index="4" data-row-index="1" style="                padding:5px;
595                ">
596                                1.0                </td>
597                                        </tr>
598                            <tr class="wpdt-cell-row even">
599                            <td class="wpdt-cell " data-cell-id="A3" data-col-index="0" data-row-index="2" style="                padding:5px;
600                ">
601                                search                </td>
602                                            <td class="wpdt-cell " data-cell-id="B3" data-col-index="1" data-row-index="2" style="                padding:5px;
603                ">
604                                seerch                </td>
605                                            <td class="wpdt-cell " data-cell-id="C3" data-col-index="2" data-row-index="2" style="                padding:5px;
606                ">
607                                0.85                </td>
608                                            <td class="wpdt-cell " data-cell-id="D3" data-col-index="3" data-row-index="2" style="                padding:5px;
609                ">
610                                0.85                </td>
611                                            <td class="wpdt-cell " data-cell-id="E3" data-col-index="4" data-row-index="2" style="                padding:5px;
612                ">
613                                0.85                </td>
614                                        </tr>
615                            <tr class="wpdt-cell-row odd">
616                            <td class="wpdt-cell " data-cell-id="A4" data-col-index="0" data-row-index="3" style="                padding:5px;
617                ">
618                                search                </td>
619                                            <td class="wpdt-cell " data-cell-id="B4" data-col-index="1" data-row-index="3" style="                padding:5px;
620                ">
621                                searchingforextraterrestriallife                </td>
622                                            <td class="wpdt-cell " data-cell-id="C4" data-col-index="2" data-row-index="3" style="                padding:5px;
623                ">
624                                0.0                </td>
625                                            <td class="wpdt-cell " data-cell-id="D4" data-col-index="3" data-row-index="3" style="                padding:5px;
626                ">
627                                0.91                </td>
628                                            <td class="wpdt-cell " data-cell-id="E4" data-col-index="4" data-row-index="3" style="                padding:5px;
629                ">
630                                0.91                </td>
631                                        </tr>
632                            <tr class="wpdt-cell-row even">
633                            <td class="wpdt-cell " data-cell-id="A5" data-col-index="0" data-row-index="4" style="                padding:5px;
634                ">
635                                searchingforextraterrestriallife                </td>
636                                            <td class="wpdt-cell " data-cell-id="B5" data-col-index="1" data-row-index="4" style="                padding:5px;
637                ">
638                                searching                </td>
639                                            <td class="wpdt-cell " data-cell-id="C5" data-col-index="2" data-row-index="4" style="                padding:5px;
640                ">
641                                0.0                </td>
642                                            <td class="wpdt-cell " data-cell-id="D5" data-col-index="3" data-row-index="4" style="                padding:5px;
643                ">
644                                0                </td>
645                                            <td class="wpdt-cell " data-cell-id="E5" data-col-index="4" data-row-index="4" style="                padding:5px;
646                ">
647                                0                </td>
648                                        </tr>
649                            <tr class="wpdt-cell-row odd">
650                            <td class="wpdt-cell " data-cell-id="A6" data-col-index="0" data-row-index="5" style="                padding:5px;
651                ">
652                                searchingforextraterrestriallife                </td>
653                                            <td class="wpdt-cell " data-cell-id="B6" data-col-index="1" data-row-index="5" style="                padding:5px;
654                ">
655                                seerch                </td>
656                                            <td class="wpdt-cell " data-cell-id="C6" data-col-index="2" data-row-index="5" style="                padding:5px;
657                ">
658                                0.0                </td>
659                                            <td class="wpdt-cell " data-cell-id="D6" data-col-index="3" data-row-index="5" style="                padding:5px;
660                ">
661                                0                </td>
662                                            <td class="wpdt-cell " data-cell-id="E6" data-col-index="4" data-row-index="5" style="                padding:5px;
663                ">
664                                0                </td>
665                                        </tr>
666                            <tr class="wpdt-cell-row even">
667                            <td class="wpdt-cell " data-cell-id="A7" data-col-index="0" data-row-index="6" style="                padding:5px;
668                ">
669                                searchingforextraterrestriallife                </td>
670                                            <td class="wpdt-cell " data-cell-id="B7" data-col-index="1" data-row-index="6" style="                padding:5px;
671                ">
672                                searchingforthemeaningoflife                </td>
673                                            <td class="wpdt-cell " data-cell-id="C7" data-col-index="2" data-row-index="6" style="                padding:5px;
674                ">
675                                0.6                </td>
676                                            <td class="wpdt-cell " data-cell-id="D7" data-col-index="3" data-row-index="6" style="                padding:5px;
677                ">
678                                0.6                </td>
679                                            <td class="wpdt-cell " data-cell-id="E7" data-col-index="4" data-row-index="6" style="                padding:5px;
680                ">
681                                0.6                </td>
682                                        </tr>
683                    </tbody></thead></table>
684</div><style id='wpdt-custom-style-2'>
685</style>
686
687
688<div class="wpdt-c row wpDataTableContainerSimpleTable wpDataTables wpDataTablesWrapper
689">
690        <table id="wpdtSimpleTable-3" class="wpdtSimpleTable wpDataTable" style="border-collapse:collapse;
691                   border-spacing:0px;" data-column="5" data-rows="7" data-wpid="3" data-responsive="1" data-has-header="1">
692
693                    <thead>        <tr class="wpdt-cell-row ">
694                            <th class="wpdt-cell wpdt-bold" data-cell-id="A1" data-col-index="0" data-row-index="0" style=" width:31.9018404908%;                padding:5px;
695                ">
696                                Строка А                </th>
697                                            <th class="wpdt-cell wpdt-bold" data-cell-id="B1" data-col-index="1" data-row-index="0" style=" width:31.9018404908%;                padding:5px;
698                ">
699                                Строка Б                </th>
700                                            <th class="wpdt-cell wpdt-bold" data-cell-id="C1" data-col-index="2" data-row-index="0" style=" width:9.96932515337%;                padding:5px;
701                ">
702                                search                </th>
703                                            <th class="wpdt-cell wpdt-bold" data-cell-id="D1" data-col-index="3" data-row-index="0" style=" width:13.6503067485%;                padding:5px;
704                ">
705                                symmetric                </th>
706                                            <th class="wpdt-cell wpdt-bold" data-cell-id="E1" data-col-index="4" data-row-index="0" style=" width:12.5766871166%;                padding:5px;
707                ">
708                                substring                </th>
709                                        </tr>
710                    <tbody>        <tr class="wpdt-cell-row odd">
711                            <td class="wpdt-cell " data-cell-id="A2" data-col-index="0" data-row-index="1" style="                padding:5px;
712                ">
713                                search                </td>
714                                            <td class="wpdt-cell " data-cell-id="B2" data-col-index="1" data-row-index="1" style="                padding:5px;
715                ">
716                                searching                </td>
717                                            <td class="wpdt-cell " data-cell-id="C2" data-col-index="2" data-row-index="1" style="                padding:5px;
718                ">
719                                0.96                </td>
720                                            <td class="wpdt-cell " data-cell-id="D2" data-col-index="3" data-row-index="1" style="                padding:5px;
721                ">
722                                0.86                </td>
723                                            <td class="wpdt-cell " data-cell-id="E2" data-col-index="4" data-row-index="1" style="                padding:5px;
724                ">
725                                0.9                </td>
726                                        </tr>
727                            <tr class="wpdt-cell-row even">
728                            <td class="wpdt-cell " data-cell-id="A3" data-col-index="0" data-row-index="2" style="                padding:5px;
729                ">
730                                search                </td>
731                                            <td class="wpdt-cell " data-cell-id="B3" data-col-index="1" data-row-index="2" style="                padding:5px;
732                ">
733                                seerch                </td>
734                                            <td class="wpdt-cell " data-cell-id="C3" data-col-index="2" data-row-index="2" style="                padding:5px;
735                ">
736                                0.75                </td>
737                                            <td class="wpdt-cell " data-cell-id="D3" data-col-index="3" data-row-index="2" style="                padding:5px;
738                ">
739                                0.75                </td>
740                                            <td class="wpdt-cell " data-cell-id="E3" data-col-index="4" data-row-index="2" style="                padding:5px;
741                ">
742                                0.8                </td>
743                                        </tr>
744                            <tr class="wpdt-cell-row odd">
745                            <td class="wpdt-cell " data-cell-id="A4" data-col-index="0" data-row-index="3" style="                padding:5px;
746                ">
747                                search                </td>
748                                            <td class="wpdt-cell " data-cell-id="B4" data-col-index="1" data-row-index="3" style="                padding:5px;
749                ">
750                                searchingforextraterrestriallife                </td>
751                                            <td class="wpdt-cell " data-cell-id="C4" data-col-index="2" data-row-index="3" style="                padd
751ing:5px;
752                ">
753                                0.91                </td>
754                                            <td class="wpdt-cell " data-cell-id="D4" data-col-index="3" data-row-index="3" style="                padding:5px;
755                ">
756                                0.87                </td>
757                                            <td class="wpdt-cell " data-cell-id="E4" data-col-index="4" data-row-index="3" style="                padding:5px;
758                ">
759                                0.88                </td>
760                                        </tr>
761                            <tr class="wpdt-cell-row even">
762                            <td class="wpdt-cell " data-cell-id="A5" data-col-index="0" data-row-index="4" style="                padding:5px;
763                ">
764                                searchingforextraterrestriallife                </td>
765                                            <td class="wpdt-cell " data-cell-id="B5" data-col-index="1" data-row-index="4" style="                padding:5px;
766                ">
767                                searching                </td>
768                                            <td class="wpdt-cell " data-cell-id="C5" data-col-index="2" data-row-index="4" style="                padding:5px;
769                ">
770                                0.35                </td>
771                                            <td class="wpdt-cell " data-cell-id="D5" data-col-index="3" data-row-index="4" style="                padding:5px;
772                ">
773                                0.84                </td>
774                                            <td class="wpdt-cell " data-cell-id="E5" data-col-index="4" data-row-index="4" style="                padding:5px;
775                ">
776                                0                </td>
777                                        </tr>
778                            <tr class="wpdt-cell-row odd">
779                            <td class="wpdt-cell " data-cell-id="A6" data-col-index="0" data-row-index="5" style="                padding:5px;
780                ">
781                                searchingforextraterrestriallife                </td>
782                                            <td class="wpdt-cell " data-cell-id="B6" data-col-index="1" data-row-index="5" style="                padding:5px;
783                ">
784                                seerch                </td>
785                                            <td class="wpdt-cell " data-cell-id="C6" data-col-index="2" data-row-index="5" style="                padding:5px;
786                ">
787                                0.24                </td>
788                                            <td class="wpdt-cell " data-cell-id="D6" data-col-index="3" data-row-index="5" style="                padding:5px;
789                ">
790                                0.79                </td>
791                                            <td class="wpdt-cell " data-cell-id="E6" data-col-index="4" data-row-index="5" style="                padding:5px;
792                ">
793                                0                </td>
794                                        </tr>
795                            <tr class="wpdt-cell-row even">
796                            <td class="wpdt-cell " data-cell-id="A7" data-col-index="0" data-row-index="6" style="                padding:5px;
797                ">
798                                searchingforextraterrestriallife                </td>
799                                            <td class="wpdt-cell " data-cell-id="B7" data-col-index="1" data-row-index="6" style="                padding:5px;
800                ">
801                                searchingforthemeaningoflife                </td>
802                                            <td class="wpdt-cell " data-cell-id="C7" data-col-index="2" data-row-index="6" style="                padding:5px;
803                ">
804                                0.57                </td>
805                                            <td class="wpdt-cell " data-cell-id="D7" data-col-index="3" data-row-index="6" style="                padding:5px;
806                ">
807                                0.6                </td>
808                                            <td class="wpdt-cell " data-cell-id="E7" data-col-index="4" data-row-index="6" style="                padding:5px;
809                ">
810                                0                </td>
811                                        </tr>
812                    </tbody></thead></table>
813</div><style id='wpdt-custom-style-3'>
814</style>
815
816<p>Более подробное пояснение по каждому из режимов можно найти в <a href="../../viewer/691cb949c1034198800afde3e5be6570/2.0.05/en-US/f3d72af569ab4360b347c73ed4806067.html" target="_blank" rel="noopener">
816официальной документации</a>.</p>
817<h3>Вызов из ABAP</h3>
818<p>Вызвать функционал сопоставления строк через Fuzzy Search можно в AMDP процедуре:</p><!-- Urvanov Syntax Highlighter v2.8.22 -->
819
820		<div id="urvanov-syntax-highlighter-618a047e7ebd2868513452" class="urvanov-syntax-highlighter-syntax crayon-theme-abapblog urvanov-syntax-highlighter-font-monospace urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover" style=" margin-bottom: 12px; clear: none; font-size: 12px !important; line-height: 15px !important;">
821		
822			<div class="urvanov-syntax-highlighter-plain-wrap"></div>
823			<div class="urvanov-syntax-highlighter-main" style="">
824				<table class="crayon-table">
825					<tr class="urvanov-syntax-highlighter-row">
826				<td class="crayon-nums " data-settings="show">
827					<div class="urvanov-syntax-highlighter-nums-content" style="font-size: 12px !important; line-height: 15px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-5">5</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-6">6</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-7">7</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-8">8</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-9">9</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-10">10</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-11">11</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-12">12</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-13">13</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-14">14</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-15">15</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-16">16</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-17">17</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-18">18</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-19">19</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-20">20</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-21">21</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-22">22</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-23">23</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-24">24</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-25">25</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-26">26</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-27">27</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-28">28</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-29">29</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-30">30</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-31">31</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-32">32</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-33">33</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-34">34</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-35">35</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-36">36</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-37">37</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-38">38</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-39">39</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-40">40</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-41">41</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-42">42</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-43">43</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-44">44</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-45">45</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-46">46</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-47">47</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-48">48</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-49">
82749</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-50">50</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-51">51</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-52">52</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-53">53</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-54">54</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-55">55</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-56">56</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-57">57</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-58">58</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-59">59</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-60">60</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-61">61</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-62">62</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-63">63</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-64">64</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-65">65</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-66">66</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-67">67</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-68">68</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-69">69</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-70">70</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-71">71</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-72">72</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-73">73</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-74">74</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-75">75</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-76">76</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-77">77</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-78">78</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-79">79</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-80">80</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-81">81</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-82">82</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-83">83</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-84">84</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-85">85</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-86">86</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-87">87</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-88">88</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-89">89</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-90">90</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-91">91</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-92">92</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-93">93</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebd2868513452-94">94</div></div>
828				</td>
829						<td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-1"><span class="crayon-st">CLASS</span><span class="crayon-h"> </span>zcl<span class="crayon-sy">_</span>hdb<span class="crayon-sy">_</span>string<span class="crayon-sy">_</span>comparator<span class="crayon-h"> </span><span class="crayon-st">DEFINITION</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-2"><span class="crayon-h">&nbsp;&nbsp;</span><span class="crayon-st">PUBLIC</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-3"><span class="crayon-h">&nbsp;&nbsp;</span><span class="crayon-st">
829FINAL</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-4"><span class="crayon-h">&nbsp;&nbsp;</span><span class="crayon-st">CREATE</span><span class="crayon-h"> </span><span class="crayon-st">PUBLIC</span><span class="crayon-o">.</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-5">&nbsp;</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-6"><span class="crayon-h">&nbsp;&nbsp;</span><span class="crayon-m">PUBLIC SECTION</span><span class="crayon-o">.</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-7"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">CONSTANTS</span><span class="crayon-o">:</span><span class="crayon-h"> </span><span class="crayon-st">BEGIN</span><span class="crayon-h"> </span><span class="crayon-st">OF</span><span class="crayon-h"> </span>gc<span class="crayon-sy">_</span>search<span class="crayon-sy">_</span>modes<span class="crayon-sy">,</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-8"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>compare<span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span class="crayon-st">TYPE</span><span class="crayon-h"> </span>string<span class="crayon-h"> </span><span class="crayon-st">VALUE</span><span class="crayon-h"> </span><span class="crayon-s">'compare'</span><span class="crayon-sy">,</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-9"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>search<span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">TYPE</span><span class="crayon-h"> </span>string<span class="crayon-h"> </span><span class="crayon-st">VALUE</span><span class="crayon-h"> </span><span class="crayon-s">'search'</span><span class="crayon-sy">,</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-10"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>searchcompare<span class="crayon-h">&nbsp;&nbsp; </span><span class="crayon-st">TYPE</span><span class="crayon-h"> </span>string<span class="crayon-h"> </span><span class="crayon-st">VALUE</span><span class="crayon-h"> </span><span class="crayon-s">'searchCompare'</span><span class="crayon-sy">,</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-11"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>symmetricsearch<span class="crayon-h"> </span><span class="crayon-st">TYPE</span><span class="crayon-h"> </span>string<span class="crayon-h"> </span><span class="crayon-st">VALUE</span><span class="crayon-h"> </span><span class="crayon-s">'symmetricsearch'</span><span class="crayon-sy">,</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-12"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>substringsearch<span class="crayon-h"> </span><span class="crayon-st">TYPE</span><span class="crayon-h"> </span>string<span class="crayon-h"> </span><span class="crayon-st">VALUE</span><span class="crayon-h"> </span><span class="crayon-s">'substringsearch'</span><span class="crayon-sy">,</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-13"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>typeahead<span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span class="crayon-st">TYPE</span><span class="crayon-h"> </span>string<span class="crayon-h"> </span><span class="crayon-st">VALUE</span><span class="crayon-h"> </span><span class="crayon-s">'typeAhead'</span><span class="crayon-sy">,</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-14"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>flexible<span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">TYPE</span><span class="crayon-h"> </span>string<span class="crayon-h"> </span><span class="crayon-st">VALUE</span><span class="crayon-h"> </span><span class="crayon-s">'flexible'</span><span class="crayon-sy">,</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-15"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>abap<span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">TYPE</span><span class="crayon-h"> </span>string<span class="crayon-h"> </span><span class="crayon-st">VALUE</span><span class="crayon-h"> </span><span class="crayon-s">'ABAP'</span><span class="crayon-sy">,</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-16"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span class="crayon-st">END</span><span class="crayon-h"> </span><span class="crayon-st">OF</span><span class="crayon-h"> </span>gc<span class="crayon-sy">_</span>search<span class="crayon-sy">_</span>modes<span class="crayon-o">.</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-17"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">TYPES</span><span class="crayon-o">:</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-18"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>ty<span class="crayon-sy">_</span>score<span class="crayon-h"> </span><span class="crayon-st">TYPE</span><span class="crayon-h"> </span>p<span class="crayon-h"> </span><span class="crayon-st">LENGTH</span><span class="crayon-h"> </span><span class="crayon-cn">3</span><span class="crayon-h"> </span><span class="crayon-st">DECIMALS</span><span class="crayon-h"> </span><span class="crayon-cn">4</span><span class="crayon-sy">,</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-19">&nbsp;</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-20"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">BEGIN</span><span class="crayon-h"> </span><span class="crayon-st">OF</span><span class="crayon-h"> </span>ts<span class="crayon-sy">_</span>score<span class="crayon-sy">,</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-21"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>score<span class="crayon-h"> </span><span class="crayon-st">TYPE</span><span class="crayon-h"> </span>ty<span class="crayon-sy">_</span>score<span class="crayon-sy">,</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-22"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">END</span><span class="crayon-h"> </span><span class="crayon-st">OF</span><span class="crayon-h"> </span>ts<span class="crayon-sy">_</span>score<span class="crayon-sy">,</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-23">&nbsp;</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-24"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>tt<span class="crayon-sy">_</span>scores<span class="crayon-h"> </span><span class="crayon-st">TYPE</span><span class="crayon-h"> </span><span class="crayon-st">STANDARD</span><span class="crayon-h"> </span><span class="crayon-st">TABLE</span><span class="crayon-h"> </span><span class="crayon-st">OF</span><span class="crayon-h"> </span>ts<span class="crayon-sy">_</span>score<span class="crayon-h"> </span><span class="crayon-st">WITH</span><span class="crayon-h"> </span><span class="crayon-st">DEFAULT</span><span class="crayon-h"> </span><span class="crayon-st">KEY</span><span class="crayon-o">.</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-25"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">INTERFACES</span><span class="crayon-o">:</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-26"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>if<span class="crayon-sy">_</span>amdp<span class="crayon-sy">_</span>marker<span class="crayon-sy">_</span>hdb<span class="crayon-o">.</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-27"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">CLASS</span><span class="crayon-o">-</span><span class="crayon-st">METHODS</span><span class="crayon-o">:</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-28"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>match<span class="crayon-h"> </span><span class="crayon-st">IMPORTING</span><span class="crayon-h"> </span>iv<span class="crayon-sy">_</span>sub<span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">TYPE</span><span class="crayon-h"> </span><span class="crayon-e">string</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-29"><span class="crayon-e">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>iv<span class="crayon-sy">_</span>val<span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">TYPE</span><span class="crayon-h"> </span><span class="crayon-e">string</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-30"><span class="crayon-e">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>iv<span class="crayon-sy">_</span>fuzzy<span class="crayon-sy">_</span>score<span class="crayon-h">&nbsp;&nbsp;</span><span class="crayon-st">TYPE</span><span class="crayon-h"> </span>ty<span class="crayon-sy">_</span>score<span class="crayon-h">&nbsp;&nbsp; </span><span class="crayon-st">OPTIONAL</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-31"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>iv<span class="crayon-sy">_</span>search<span class="crayon-sy">_</span>mode<span class="crayon-h">&nbsp;&nbsp;</span><span class="crayon-st">TYPE</span><span class="crayon-h"> </span>string<span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp; </span><span class="crayon-st">OPTIONAL</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-32"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>iv<span class="crayon-sy">_</span>flex<span class="crayon-sy">_</span>conf<span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">TYPE</span><span class="crayon-h"> </span>string<span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp; </span><span class="crayon-st">OPTIONAL</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-33"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">EXPORTING</span><span class="crayon-h"> </span>ev<span class="crayon-sy">_</span>fact<span class="crayon-sy">_</span>score<span class="crayon-h">&nbsp;&nbsp; </span><span class="crayon-st">TYPE</span><span class="crayon-h"> </span>ty<span class="crayon-sy">_</span>score</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-34"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">RETURNING</span><span class="crayon-h"> </span><span class="crayon-st">VALUE</span><span class="crayon-o">(</span>rv<span class="crayon-sy">_</span>score<span class="crayon-o">)</span><span class="crayon-h"> </span><span class="crayon-st">TYPE</span><span class="crayon-h"> </span>ty<span class="crayon-sy">_</span>score<span class="crayon-o">.</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-35"><span class="crayon-h">&nbsp;&nbsp;</span><span class="crayon-m">PRIVATE SECTION</span><span class="crayon-o">.</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-36"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">CLASS</span><span class="crayon-o">-</span><span class="crayon-st">METHODS</span><span class="crayon-o">:</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-37"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>match<span class="crayon-sy">_</span>int<span class="crayon-h"> </span><span class="crayon-st">IMPORTING</span><span class="crayon-h"> </span><span class="crayon-st">VALUE</span><span class="crayon-o">(</span>iv<span class="crayon-sy">_</span>sub<span class="crayon-o">)</span><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span class="crayon-st">TYPE</span><span class="crayon-h"> </span>string</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-38"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">VALUE</span><span class="crayon-o">(</span>iv<span class="crayon-sy">_</span>val<span class="crayon-o">)</span><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span class="crayon-st">TYPE</span><span class="crayon-h"> </span>string</div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-39"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">VALUE</span><span class="crayon-o">(</span>iv<span class="crayon-sy">_</span>search<span class="crayon-sy">_</span>mode<span class="crayon-o">)</span><span class="crayon-h"> </span><span class="crayon-st">TYPE</span><span class="crayon-h"> </span>string</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-40"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">VALUE</span><span class="crayon-o">(</span>iv<span class="crayon-sy">_</span>fuzzy<span class="crayon-sy">_</span>score<span class="crayon-o">)</span><span class="crayon-h"> </span><span class="crayon-st">TYPE</span><span class="crayon-h"> </span>ty<span class="crayon-sy">_</span>score</div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-41"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</
829span><span class="crayon-st">EXPORTING</span><span class="crayon-h"> </span><span class="crayon-st">VALUE</span><span class="crayon-o">(</span>et<span class="crayon-sy">_</span>scores<span class="crayon-o">)</span><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">TYPE</span><span class="crayon-h"> </span>tt<span class="crayon-sy">_</span>scores</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-42"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">RAISING</span><span class="crayon-h"> </span><span class="crayon-t">cx_amdp_error</span><span class="crayon-o">.</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-43"><span class="crayon-st">ENDCLASS</span><span class="crayon-o">.</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-44">&nbsp;</div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-45"><span class="crayon-st">CLASS</span><span class="crayon-h"> </span>zcl<span class="crayon-sy">_</span>hdb<span class="crayon-sy">_</span>string<span class="crayon-sy">_</span>comparator<span class="crayon-h"> </span><span class="crayon-st">IMPLEMENTATION</span><span class="crayon-o">.</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-46"><span class="crayon-h">&nbsp;&nbsp;</span><span class="crayon-st">METHOD</span><span class="crayon-h"> </span>match<span class="crayon-o">.</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-47"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">DATA</span><span class="crayon-o">:</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-48"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>lv<span class="crayon-sy">_</span>mode<span class="crayon-h"> </span><span class="crayon-st">TYPE</span><span class="crayon-h"> </span>string<span class="crayon-o">.</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-49">&nbsp;</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-50"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">CLEAR</span><span class="crayon-h"> </span>ev<span class="crayon-sy">_</span>fact<span class="crayon-sy">_</span>score<span class="crayon-o">.</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-51">&nbsp;</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-52"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">IF</span><span class="crayon-h"> </span>iv<span class="crayon-sy">_</span>search<span class="crayon-sy">_</span>mode<span class="crayon-h"> </span><span class="crayon-st">IS</span><span class="crayon-h"> </span><span class="crayon-st">INITIAL</span><span class="crayon-o">.</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-53"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>rv<span class="crayon-sy">_</span>score<span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span>ev<span class="crayon-sy">_</span>fact<span class="crayon-sy">_</span>score<span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-st">COND</span><span class="crayon-h"> </span>#<span class="crayon-o">(</span><span class="crayon-h"> </span><span class="crayon-st">WHEN</span><span class="crayon-h"> </span>iv<span class="crayon-sy">_</span>sub<span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span>iv<span class="crayon-sy">_</span>val<span class="crayon-h"> </span><span class="crayon-st">THEN</span><span class="crayon-h"> </span><span class="crayon-cn">1</span><span class="crayon-h"> </span><span class="crayon-st">ELSE</span><span class="crayon-h"> </span><span class="crayon-cn">0</span><span class="crayon-h"> </span><span class="crayon-o">)</span><span class="crayon-o">.</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-54"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">RETURN</span><span class="crayon-o">.</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-55"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">ENDIF</span><span class="crayon-o">.</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-56">&nbsp;</div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-57"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">IF</span><span class="crayon-h"> </span>iv<span class="crayon-sy">_</span>search<span class="crayon-sy">_</span>mode<span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span>gc<span class="crayon-sy">_</span>search<span class="crayon-sy">_</span>modes<span class="crayon-o">-</span>abap<span class="crayon-o">.</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-58"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>rv<span class="crayon-sy">_</span>score<span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span>ev<span class="crayon-sy">_</span>fact<span class="crayon-sy">_</span>score<span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-o">(</span><span class="crayon-h"> </span><span class="crayon-cn">1</span><span class="crayon-h"> </span><span class="crayon-o">-</span><span class="crayon-h"> </span><span class="crayon-r">distance</span><span class="crayon-o">(</span><span class="crayon-h"> </span>val1<span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-e">iv_sub </span>val2<span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span>iv<span class="crayon-sy">_</span>val<span class="crayon-h"> </span><span class="crayon-o">)</span><span class="crayon-h"> </span><span class="crayon-o">/</span><span class="crayon-h"> </span><span class="crayon-r">nmax</span><span class="crayon-o">(</span><span class="crayon-h"> </span>val1<span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-r">strlen</span><span class="crayon-o">(</span><span class="crayon-h"> </span>iv<span class="crayon-sy">_</span>sub<span class="crayon-h"> </span><span class="crayon-o">)</span><span class="crayon-h"> </span>val2<span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-r">strlen</span><span class="crayon-o">(</span><span class="crayon-h"> </span>iv<span class="crayon-sy">_</span>val<span class="crayon-h"> </span><span class="crayon-o">)</span><span class="crayon-h"> </span><span class="crayon-o">)</span><span class="crayon-h"> </span><span class="crayon-o">)</span><span class="crayon-o">.</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-59"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">ELSE</span><span class="crayon-o">.</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-60"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>lv<span class="crayon-sy">_</span>mode<span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span>iv<span class="crayon-sy">_</span>search<span class="crayon-sy">_</span>mode<span class="crayon-o">.</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-61">&nbsp;</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-62"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">IF</span><span class="crayon-h"> </span>iv<span class="crayon-sy">_</span>flex<span class="crayon-sy">_</span>conf<span class="crayon-h"> </span><span class="crayon-st">IS</span><span class="crayon-h"> </span><span class="crayon-st">NOT</span><span class="crayon-h"> </span><span class="crayon-st">INITIAL</span><span class="crayon-o">.</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-63"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>lv<span class="crayon-sy">_</span>mode<span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span>lv<span class="crayon-sy">_</span>mode<span class="crayon-h"> </span><span class="crayon-o">&amp;</span><span class="crayon-o">&amp;</span><span class="crayon-h"> </span><span class="crayon-s">`, `</span><span class="crayon-h"> </span><span class="crayon-o">&amp;</span><span class="crayon-o">&amp;</span><span class="crayon-h"> </span>iv<span class="crayon-sy">_</span>flex<span class="crayon-sy">_</span>conf<span class="crayon-o">.</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-64"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">ENDIF</span><span class="crayon-o">.</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-65">&nbsp;</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-66"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">TRY</span><span class="crayon-o">.</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-67"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-e">match_int</span><span class="crayon-o">(</span><span class="crayon-h"> </span><span class="crayon-st">EXPORTING</span><span class="crayon-h"> </span>iv<span class="crayon-sy">_</span>search<span class="crayon-sy">_</span>mode<span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-e">lv_mode</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-68"><span class="crayon-e">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>iv<span class="crayon-sy">_</span>val<span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-e">iv_val</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-69"><span class="crayon-e">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>iv<span class="crayon-sy">_</span>sub<span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-e">iv_sub</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-70"><span class="crayon-e">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>iv<span class="crayon-sy">_</span>fuzzy<span class="crayon-sy">_</span>score<span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-cn">0</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-71"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span class="crayon-st">IMPORTING</span><span class="crayon-h"> </span>et<span class="crayon-sy">_</span>scores<span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-st">DATA</span><span class="crayon-o">(</span>lt<span class="crayon-sy">_</span>scores<span class="crayon-o">)</span><span class="crayon-h"> </span><span class="crayon-o">)</span><span class="crayon-o">.</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-72">&nbsp;</div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-73"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>rv<span class="crayon-sy">_</span>score<span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span>ev<span class="crayon-sy">_</span>fact<span class="crayon-sy">_</span>score<span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-st">VALUE</span><span class="crayon-h"> </span>#<span class="crayon-o">(</span><span class="crayon-h"> </span>lt<span class="crayon-sy">_</span>scores<span class="crayon-o">[</span><span class="crayon-h"> </span><span class="crayon-cn">1</span><span class="crayon-h"> </span><span class="crayon-o">]</span><span class="crayon-o">-</span>score<span class="crayon-h"> </span><span class="crayon-st">OPTIONAL</span><span class="crayon-h"> </span><span class="crayon-o">)</span><span class="crayon-o">.</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-74"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">CATCH</span><span class="crayon-h"> </span><span class="crayon-t">cx_amdp_error</span><span class="crayon-o">.</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-75"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">RETURN</span><span class="crayon-o">.</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-76"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">
829ENDTRY</span><span class="crayon-o">.</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-77"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">ENDIF</span><span class="crayon-o">.</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-78">&nbsp;</div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-79"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;</span>rv<span class="crayon-sy">_</span>score<span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-st">COND</span><span class="crayon-h"> </span>#<span class="crayon-o">(</span><span class="crayon-h"> </span><span class="crayon-st">WHEN</span><span class="crayon-h"> </span>rv<span class="crayon-sy">_</span>score<span class="crayon-h"> </span><span class="crayon-o">&gt;=</span><span class="crayon-h"> </span>iv<span class="crayon-sy">_</span>fuzzy<span class="crayon-sy">_</span>score<span class="crayon-h"> </span><span class="crayon-st">THEN</span><span class="crayon-h"> </span>rv<span class="crayon-sy">_</span>score<span class="crayon-h"> </span><span class="crayon-st">ELSE</span><span class="crayon-h"> </span><span class="crayon-cn">0</span><span class="crayon-h"> </span><span class="crayon-o">)</span><span class="crayon-o">.</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-80"><span class="crayon-h">&nbsp;&nbsp;</span><span class="crayon-st">ENDMETHOD</span><span class="crayon-o">.</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-81">&nbsp;</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-82"><span class="crayon-h">&nbsp;&nbsp;</span><span class="crayon-st">METHOD</span><span class="crayon-h"> </span>match<span class="crayon-sy">_</span>int<span class="crayon-h"> </span><span class="crayon-st">BY</span><span class="crayon-h"> </span><span class="crayon-st">DATABASE</span><span class="crayon-h"> </span><span class="crayon-st">PROCEDURE</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-83"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span class="crayon-st">FOR</span><span class="crayon-h"> </span><span class="crayon-st">HDB</span><span class="crayon-h"> </span><span class="crayon-st">LANGUAGE</span><span class="crayon-h"> </span><span class="crayon-st">SQLSCRIPT</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-84"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span class="crayon-st">OPTIONS</span><span class="crayon-h"> </span><span class="crayon-st">READ</span><span class="crayon-o">-</span><span class="crayon-st">ONLY</span><span class="crayon-o">.</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-85">&nbsp;</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-86"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">DECLARE</span><span class="crayon-h"> </span>lt<span class="crayon-sy">_</span>search<span class="crayon-sy">_</span>tab<span class="crayon-h"> </span><span class="crayon-st">TABLE</span><span class="crayon-h"> </span><span class="crayon-o">(</span><span class="crayon-h"> </span>col<span class="crayon-sy">_</span>search<span class="crayon-h"> </span><span class="crayon-st">NVARCHAR</span><span class="crayon-o">(</span><span class="crayon-cn">1000</span><span class="crayon-o">)</span><span class="crayon-o">)</span><span class="crayon-sy">;</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-87"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;</span>lt<span class="crayon-sy">_</span>search<span class="crayon-sy">_</span>tab<span class="crayon-o">[</span><span class="crayon-cn">1</span><span class="crayon-o">]</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-o">:</span>iv<span class="crayon-sy">_</span>val<span class="crayon-sy">;</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-88">&nbsp;</div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-89"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;</span>et<span class="crayon-sy">_</span>scores<span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-st">SELECT</span><span class="crayon-h"> </span><span class="crayon-st">SCORE</span><span class="crayon-o">(</span><span class="crayon-o">)</span><span class="crayon-h"> </span><span class="crayon-st">AS</span><span class="crayon-h"> </span>score</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-90"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">FROM</span><span class="crayon-h"> </span><span class="crayon-o">:</span>lt<span class="crayon-sy">_</span>search<span class="crayon-sy">_</span>tab</div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-91"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">WHERE</span><span class="crayon-h"> </span><span class="crayon-st">CONTAINS</span><span class="crayon-o">(</span><span class="crayon-h"> </span>col<span class="crayon-sy">_</span>search<span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-o">:</span>iv<span class="crayon-sy">_</span>sub<span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-st">FUZZY</span><span class="crayon-o">(</span><span class="crayon-h"> </span><span class="crayon-o">:</span>iv<span class="crayon-sy">_</span>fuzzy<span class="crayon-sy">_</span>score<span class="crayon-sy">,</span><span class="crayon-h"> </span><span class="crayon-o">:</span>iv<span class="crayon-sy">_</span>search<span class="crayon-sy">_</span>mode<span class="crayon-h"> </span><span class="crayon-o">)</span><span class="crayon-h"> </span><span class="crayon-o">)</span><span class="crayon-sy">;</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-92"><span class="crayon-h">&nbsp;&nbsp;</span><span class="crayon-st">ENDMETHOD</span><span class="crayon-o">.</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-93">&nbsp;</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebd2868513452-94"><span class="crayon-st">ENDCLASS</span><span class="crayon-o">.</span></div></div></td>
830					</tr>
831				</table>
832			</div>
833		</div>
834<!-- [Format Time: 0.0109 seconds] -->
835<p>В классе можно воспользоваться как ABAP режимом сопоставления через функцию distance, так и прочими режимами рассмотренными ранее.</p>
836<p>Программа для тестирования сопоставлений:</p><!-- Urvanov Syntax Highlighter v2.8.22 -->
837
838		<div id="urvanov-syntax-highlighter-618a047e7ebdb502225165" class="urvanov-syntax-highlighter-syntax crayon-theme-abapblog urvanov-syntax-highlighter-font-monospace urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover" style=" margin-bottom: 12px; clear: none; font-size: 12px !important; line-height: 15px !important;">
839		
840			<div class="urvanov-syntax-highlighter-plain-wrap"></div>
841			<div class="urvanov-syntax-highlighter-main" style="">
842				<table class="crayon-table">
843					<tr class="urvanov-syntax-highlighter-row">
844				<td class="crayon-nums " data-settings="show">
845					<div class="urvanov-syntax-highlighter-nums-content" style="font-size: 12px !important; line-height: 15px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-1">1</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-3">3</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-5">5</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-6">6</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-7">7</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-8">8</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-9">9</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-10">10</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-11">11</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-12">12</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-13">13</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-14">14</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-15">15</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-16">16</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-17">17</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-18">18</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-19">19</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-20">20</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-21">21</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-22">22</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-23">23</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-24">24</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-25">25</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-26">26</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-27">27</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-28">28</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-29">29</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-30">30</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-31">31</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-32">32</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-33">33</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-34">34</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-35">35</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-36">36</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-37">37</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-38">38</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-39">39</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-40">40</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-41">41</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-42">42</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-43">43</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-44">44</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-45">45</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-46">46</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-47">47</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-48">48</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-49">49</div><div class="crayon-num crayon-striped-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-50">50</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-618a047e7ebdb502225165-51">51</div></div>
846				</td>
847						<td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-1"><span class="crayon-st">PARAMETERS</span><span class="crayon-o">:</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-2"><span class="crayon-h">&nbsp;&nbsp;</span>p<span class="crayon-sy">_</span>1<span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">TYPE</span><span class="crayon-h"> </span>text1024<span class="crayon-sy">,</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-3"><span class="crayon-h">&nbsp;&nbsp;</span>p<span class="crayon-sy">_</span>2<span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">TYPE</span><span class="crayon-h"> </span>text1024<span class="crayon-sy">,</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-4"><span class="crayon-h">&nbsp;&nbsp;</span>p<span class="crayon-sy">_</span>m<span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">TYPE</span><span class="crayon-h"> </span>text1024<span class="crayon-h"> </span><span class="crayon-st">DEFAULT</span><span class="crayon-h"> </span><span class="crayon-s">'COMPARE'</span><span class="crayon-sy">,</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-5"><span class="crayon-h">&nbsp;&nbsp;</span>p<span class="crayon-sy">_</span>sc<span class="crayon-h">&nbsp;&nbsp; </span><span class="crayon-st">TYPE</span><span class="crayon-h"> </span>zcl<span class="crayon-sy">_</span>hdb<span class="crayon-sy">_</span>string<span class="crayon-sy">_</span>comparator<span class="crayon-o">=</span><span class="crayon-o">&gt;</span>ty<span class="crayon-sy">_</span>score<span class="crayon-h"> </span><span class="crayon-st">DEFAULT</span><span class="crayon-h"> </span><span class="crayon-s">'0.5'</span><span class="crayon-sy">,</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-6"><span class="crayon-h">&nbsp;&nbsp;</span>p<span class="crayon-sy">_</span>flex<span class="crayon-h"> </span><span class="crayon-st">TYPE</span><span class="crayon-h"> </span>text1024<span class="crayon-o">.</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-7">&nbsp;</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-8"><span
847 class="crayon-st">TYPES</span><span class="crayon-o">:</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-9"><span class="crayon-h">&nbsp;&nbsp;</span><span class="crayon-st">BEGIN</span><span class="crayon-h"> </span><span class="crayon-st">OF</span><span class="crayon-h"> </span>ts<span class="crayon-sy">_</span>modes<span class="crayon-sy">,</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-10"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;</span>mode<span class="crayon-h"> </span><span class="crayon-st">TYPE</span><span class="crayon-h"> </span>char100<span class="crayon-sy">,</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-11"><span class="crayon-h">&nbsp;&nbsp;</span><span class="crayon-st">END</span><span class="crayon-h"> </span><span class="crayon-st">OF</span><span class="crayon-h"> </span>ts<span class="crayon-sy">_</span>modes<span class="crayon-sy">,</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-12"><span class="crayon-h">&nbsp;&nbsp;</span>tt<span class="crayon-sy">_</span>modes<span class="crayon-h"> </span><span class="crayon-st">TYPE</span><span class="crayon-h"> </span><span class="crayon-st">STANDARD</span><span class="crayon-h"> </span><span class="crayon-st">TABLE</span><span class="crayon-h"> </span><span class="crayon-st">OF</span><span class="crayon-h"> </span>ts<span class="crayon-sy">_</span>modes<span class="crayon-h"> </span><span class="crayon-st">WITH</span><span class="crayon-h"> </span><span class="crayon-st">EMPTY</span><span class="crayon-h"> </span><span class="crayon-st">KEY</span><span class="crayon-o">.</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-13">&nbsp;</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-14"><span class="crayon-st">DATA</span><span class="crayon-h"> </span>lt<span class="crayon-sy">_</span>return<span class="crayon-sy">_</span>table<span class="crayon-h">&nbsp;&nbsp;</span><span class="crayon-st">TYPE</span><span class="crayon-h"> </span><span class="crayon-st">STANDARD</span><span class="crayon-h"> </span><span class="crayon-st">TABLE</span><span class="crayon-h"> </span><span class="crayon-st">OF</span><span class="crayon-h"> </span>ddshretval<span class="crayon-o">.</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-15">&nbsp;</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-16"><span class="crayon-m">AT SELECTION-SCREEN</span><span class="crayon-h"> </span><span class="crayon-m">ON VALUE-REQUEST FOR</span><span class="crayon-h"> </span>p<span class="crayon-sy">_</span>m<span class="crayon-o">.</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-17"><span class="crayon-h">&nbsp;&nbsp;</span><span class="crayon-st">DATA</span><span class="crayon-o">(</span>lt<span class="crayon-sy">_</span>modes<span class="crayon-o">)</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-st">VALUE</span><span class="crayon-h"> </span><span class="crayon-e">tt_modes</span><span class="crayon-o">(</span><span class="crayon-h"> </span><span class="crayon-st">FOR</span><span class="crayon-h"> </span><span class="crayon-o">&lt;</span>ls<span class="crayon-o">&gt;</span><span class="crayon-h"> </span><span class="crayon-st">IN</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-18"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">CAST</span><span class="crayon-h"> </span><span class="crayon-e">cl_abap_structdescr</span><span class="crayon-o">(</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-19"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">CAST</span><span class="crayon-h"> </span><span class="crayon-e">cl_abap_classdescr</span><span class="crayon-o">(</span><span class="crayon-h"> </span>cl<span class="crayon-sy">_</span>abap<span class="crayon-sy">_</span>classdescr<span class="crayon-o">=</span><span class="crayon-o">&gt;</span><span class="crayon-e">describe_by_name</span><span class="crayon-o">(</span><span class="crayon-h"> </span><span class="crayon-s">'ZCL_HDB_STRING_COMPARATOR'</span><span class="crayon-h"> </span><span class="crayon-o">)</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-20"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-o">)</span><span class="crayon-o">-</span><span class="crayon-o">&gt;</span><span class="crayon-e">get_attribute_type</span><span class="crayon-o">(</span><span class="crayon-h"> </span><span class="crayon-s">'GC_SEARCH_MODES'</span><span class="crayon-h"> </span><span class="crayon-o">)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-21"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-o">)</span><span class="crayon-o">-</span><span class="crayon-o">&gt;</span><span class="crayon-e">get_components</span><span class="crayon-o">(</span><span class="crayon-h"> </span><span class="crayon-o">)</span><span class="crayon-h"> </span><span class="crayon-o">(</span><span class="crayon-h"> </span>mode<span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-o">&lt;</span>ls<span class="crayon-o">&gt;</span><span class="crayon-o">-</span>name<span class="crayon-h"> </span><span class="crayon-o">)</span><span class="crayon-h"> </span><span class="crayon-o">)</span><span class="crayon-o">.</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-22">&nbsp;</div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-23"><span class="crayon-h">&nbsp;&nbsp;</span><span class="crayon-st">CALL</span><span class="crayon-h"> </span><span class="crayon-st">FUNCTION</span><span class="crayon-h"> </span><span class="crayon-s">'F4IF_INT_TABLE_VALUE_REQUEST'</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-24"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">EXPORTING</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-25"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>retfield<span class="crayon-h">&nbsp;&nbsp; </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-s">'MODE'</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-26"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>value<span class="crayon-sy">_</span>org<span class="crayon-h">&nbsp;&nbsp;</span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-s">'S'</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-27"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">TABLES</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-28"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>value<span class="crayon-sy">_</span>tab<span class="crayon-h">&nbsp;&nbsp;</span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-e">lt_modes</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-29"><span class="crayon-e">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>return<span class="crayon-sy">_</span>tab<span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span>lt<span class="crayon-sy">_</span>return<span class="crayon-sy">_</span>
847table<span class="crayon-o">.</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-30">&nbsp;</div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-31"><span class="crayon-h">&nbsp;&nbsp;</span>p<span class="crayon-sy">_</span>m<span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-st">VALUE</span><span class="crayon-h"> </span>#<span class="crayon-o">(</span><span class="crayon-h"> </span>lt<span class="crayon-sy">_</span>return<span class="crayon-sy">_</span>table<span class="crayon-o">[</span><span class="crayon-h"> </span><span class="crayon-cn">1</span><span class="crayon-h"> </span><span class="crayon-o">]</span><span class="crayon-o">-</span>fieldval<span class="crayon-h"> </span><span class="crayon-st">OPTIONAL</span><span class="crayon-h"> </span><span class="crayon-o">)</span><span class="crayon-o">.</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-32">&nbsp;</div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-33"><span class="crayon-m">START-OF-SELECTION</span><span class="crayon-o">.</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-34"><span class="crayon-h">&nbsp;&nbsp;</span>zcl<span class="crayon-sy">_</span>hdb<span class="crayon-sy">_</span>string<span class="crayon-sy">_</span>comparator<span class="crayon-o">=</span><span class="crayon-o">&gt;</span><span class="crayon-r">match</span><span class="crayon-o">(</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-35"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">EXPORTING</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-36"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>iv<span class="crayon-sy">_</span>sub<span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-st">CONV</span><span class="crayon-h"> </span>#<span class="crayon-o">(</span><span class="crayon-h"> </span>p<span class="crayon-sy">_</span>1<span class="crayon-h"> </span><span class="crayon-o">)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-37"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>iv<span class="crayon-sy">_</span>val<span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-st">CONV</span><span class="crayon-h"> </span>#<span class="crayon-o">(</span><span class="crayon-h"> </span>p<span class="crayon-sy">_</span>2<span class="crayon-h"> </span><span class="crayon-o">)</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-38"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>iv<span class="crayon-sy">_</span>fuzzy<span class="crayon-sy">_</span>score<span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-e">p_sc</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-39"><span class="crayon-e">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>iv<span class="crayon-sy">_</span>search<span class="crayon-sy">_</span>mode<span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-st">CONV</span><span class="crayon-h"> </span>#<span class="crayon-o">(</span><span class="crayon-h"> </span>p<span class="crayon-sy">_</span>m<span class="crayon-h"> </span><span class="crayon-o">)</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-40"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>iv<span class="crayon-sy">_</span>flex<span class="crayon-sy">_</span>conf<span class="crayon-h">&nbsp;&nbsp; </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-st">CONV</span><span class="crayon-h"> </span>#<span class="crayon-o">(</span><span class="crayon-h"> </span>p<span class="crayon-sy">_</span>flex<span class="crayon-h"> </span><span class="crayon-o">)</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-41"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-st">RECEIVING</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-42"><span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>rv<span class="crayon-sy">_</span>score<span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-st">DATA</span><span class="crayon-o">(</span>rv<span class="crayon-sy">_</span>score<span class="crayon-o">)</span><span class="crayon-h"> </span><span class="crayon-o">)</span><span class="crayon-o">.</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-43">&nbsp;</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-44"><span class="crayon-h">&nbsp;&nbsp;</span><span class="crayon-st">WRITE</span><span class="crayon-o">:</span><span class="crayon-h"> </span><span class="crayon-s">'Оценка: '</span><span class="crayon-sy">,</span><span class="crayon-h"> </span>rv<span class="crayon-sy">_</span>score<span class="crayon-o">.</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-45">&nbsp;</div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-46"><span class="crayon-m">INITIALIZATION</span><span class="crayon-o">.</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-47"><span class="crayon-h">&nbsp;&nbsp;</span><span class="crayon-o">%</span><span class="crayon-sy">_</span>p<span class="crayon-sy">_</span>1<span class="crayon-sy">_</span><span class="crayon-o">%</span><span class="crayon-sy">_</span>app<span class="crayon-sy">_</span><span class="crayon-o">%</span><span class="crayon-o">-</span>text<span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-s">'Что ищем (строка А)'</span><span class="crayon-o">.</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-48"><span class="crayon-h">&nbsp;&nbsp;</span><span class="crayon-o">%</span><span class="crayon-sy">_</span>p<span class="crayon-sy">_</span>2<span class="crayon-sy">_</span><span class="crayon-o">%</span><span class="crayon-sy">_</span>app<span class="crayon-sy">_</span><span class="crayon-o">%</span><span class="crayon-o">-</span>text<span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-s">'Где ищем (строка Б)'</span><span class="crayon-o">.</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-49"><span class="crayon-h">&nbsp;&nbsp;</span><span class="crayon-o">%</span><span class="crayon-sy">_</span>p<span class="crayon-sy">_</span>m<span class="crayon-sy">_</span><span class="crayon-o">%</span><span class="crayon-sy">_</span>app<span class="crayon-sy">_</span><span class="crayon-o">%</span><span class="crayon-o">-</span>text<span class="crayon-h">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-s">'Режим сопоставления'</span><span class="crayon-o">.</span></div><div class="crayon-line crayon-striped-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-50"><span class="crayon-h">&nbsp;&nbsp;</span><span class="crayon-o">%</span><span class="crayon-sy">_</span>p<span class="crayon-sy">_</span>sc<span class="crayon-sy">_</span><span class="crayon-o">%</span><span class="crayon-sy">_</span>app<span class="crayon-sy">_</span><span class="crayon-o">%</span><span class="crayon-o">-</span>text<span class="crayon-h">&nbsp;&nbsp; </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-s">'Минимальный порог'</span><span class="crayon-o">.</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-618a047e7ebdb502225165-51"><span class="crayon-h">&nbsp;&nbsp;</span><span class="crayon-o">%</span><span class="crayon-sy">_</span>p<span class="crayon-sy">_</span>flex<span class="crayon-sy">_</span><span class="crayon-o">%</span><span class="crayon-sy">_</span>app<span class="crayon-sy">_</span><span class="crayon-o">%</span><span class="crayon-o">-</span>text<span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-s">'Доп. параметры к гибкому режиму'</span><span class="crayon-o">.</span></div></div></td>
848					</tr>
849				</table>
850			</div>
851		</div>
852<!-- [Format Time: 0.0056 seconds] -->
853<p>&nbsp;</p>
854							</div>
855		</article>
856	
857	<nav class="navigation post-navigation" role="navigation" aria-label="Записи">
858		<h2 class="screen-reader-text">Навигация по записям</h2>
859		<div class="nav-links"><div class="nav-previous"><a href="../../others/sxpg_framework/index.htm" rel="prev"><span class="meta-nav" aria-hidden="true">Назад</span> <span class="screen-reader-text">Предыдущая запись:</span> <span class="post-title">SXPG Framework</span></a></div><div class="nav-next"><a href="../../osnovy-abap/vebinar-na-temu-clean-code/index.htm" rel="next"><span class="meta-nav" aria-hidden="true">Далее</span> <span class="screen-reader-text">Следующая запись:</span> <span class="post-title">
859Вебинар на тему Clean Code</span></a></div></div>
860	</nav>
861
862<div id="comments" class="comments-area">
863
864	
865	
866		<div id="respond" class="comment-respond">
867		<h3 id="reply-title" class="comment-reply-title">Добавить комментарий <small><a rel="nofollow" id="cancel-comment-reply-link" href="index.htm#respond" style="display:none;">Отменить ответ</a></small></h3><form action="https://abap-blog.ru/wp-comments-post.php" method="post" id="commentform" class="comment-form" novalidate=""><p class="comment-notes"><span id="email-notes">Ваш адрес email не будет опубликован.</span></p><p class="comment-form-comment"><label for="comment">Комментарий</label> <textarea id="comment" name="comment" cols="45" rows="8" maxlength="65525" required="required"></textarea></p><p class="comment-form-author"><label for="author">Имя</label> <input id="author" name="author" type="text" value="" size="30" maxlength="245"></p>
868<div class="anr_captcha_field"><div id="anr_captcha_field_1" class="anr_captcha_field_div"></div></div><p class="form-submit"><input name="submit" type="submit" id="submit" class="submit" value="Отправить комментарий"> <input type='hidden' name='comment_post_ID' value='7264' id='comment_post_ID'>
869<input type='hidden' name='comment_parent' id='comment_parent' value='0'>
870</p></form>	</div><!-- #respond -->
871	
872	
873</div>
874
875			</div>
876							</div>
877					</div>
878	</div>
879</div>
880<link rel='stylesheet' id='wdt-simple-table-css' href='../../wp-content/plugins/wpdatatables/assets/css/wdt.simpleTable.min.css?ver=2.1.19' media='all'>
881<link rel='stylesheet' id='wdt-font-style-css' href='../../wp-content/plugins/wpdatatables/assets/css/style.min.css?ver=2.1.19' media='all'>
882<script type='text/javascript' id='contact-form-7-js-extra'>
883/* <![CDATA[ */
884var wpcf7 = {"api":{"root":"https:\/\/abap-blog.ru\/wp-json\/","namespace":"contact-form-7\/v1"}};
885/* ]]> */
886</script>
vendor: 1 bytes, line 886
886
887<script src='../../wp-content/plugins/contact-form-7/includes/js/index.js?ver=5.5.1' id='contact-form-7-js'></script>
vendor: 1 bytes, line 887
887
888<script src='../../wp-includes/js/jquery/ui/effect.min.js?ver=1.12.1' id='jquery-effects-core-js'></script>
vendor: 1 bytes, line 888
888
889<script src='../../wp-includes/js/jquery/ui/effect-slide.min.js?ver=1.12.1' id='jquery-effects-slide-js'></script>
vendor: 1 bytes, line 889
889
890<script src='../../wp-includes/js/jquery/ui/effect-highlight.min.js?ver=1.12.1' id='jquery-effects-highlight-js'></script>
vendor: 1 bytes, line 890
890
891<script src='../../wp-includes/js/jquery/ui/effect-fold.min.js?ver=1.12.1' id='jquery-effects-fold-js'></script>
vendor: 1 bytes, line 891
891
892<script src='../../wp-includes/js/jquery/ui/effect-blind.min.js?ver=1.12.1' id='jquery-effects-blind-js'></script>
vendor: 1 bytes, line 892
892
893<script src='../../wp-content/plugins/show-hidecollapse-expand/assets/js/bg-show-hide.js?ver=5.8.1' id='bg-show-hide-script-js'></script>
vendor: 1 bytes, line 893
893
894<script src='../../wp-includes/js/comment-reply.min.js?ver=5.8.1' id='comment-reply-js'></script>
vendor: 1 bytes, line 894
894
895<script src='../../wp-content/plugins/dynamic-to-top/js/libs/jquery.easing.js?ver=1.3' id='jquery-easing-js'></script>
vendor: 1 bytes, line 895
895
896<script type='text/javascript' id='dynamic-to-top-js-extra'>
897/* <![CDATA[ */
898var mv_dynamic_to_top = {"text":"To Top","version":"0","min":"300","speed":"1100","easing":"easeInExpo","margin":"20"};
899/* ]]> */
900</script>
vendor: 1 bytes, line 900
900
901<script src='../../wp-content/plugins/dynamic-to-top/js/dynamic.to.top.min.js?ver=3.5' id='dynamic-to-top-js'></script>
vendor: 1 bytes, line 901
901
902<script src='../../recaptcha/api.js?render=6LdA3s4UAAAAADBjYG-YFAEz4zKS3lKp1CB_BHMC&#038;ver=3.0' id='google-recaptcha-js'></script>
vendor: 1 bytes, line 902
902
903<script type='text/javascript' id='wpcf7-recaptcha-js-extra'>
904/* <![CDATA[ */
905var wpcf7_recaptcha = {"sitekey":"6LdA3s4UAAAAADBjYG-YFAEz4zKS3lKp1CB_BHMC","actions":{"homepage":"homepage","contactform":"contactform"}};
906/* ]]> */
907</script>
vendor: 1 bytes, line 907
907
908<script src='../../wp-content/plugins/contact-form-7/modules/recaptcha/index.js?ver=5.5.1' id='wpcf7-recaptcha-js'></script>
vendor: 1 bytes, line 908
908
909<script src='../../wp-includes/js/wp-embed.min.js?ver=5.8.1' id='wp-embed-js'></script>
vendor: 1 bytes, line 909
909
910<script src='../../wp-content/plugins/wpdatatables/assets/js/responsive/wdt.simpleTable.responsive.min.js?ver=2.1.19' id='wdt-simple-table-responsive-min-js-js'></script>
vendor: 1 bytes, line 910
910
911<script src='../../wp-content/plugins/wpdatatables/assets/js/responsive/wdt.simpleTable.responsive.init.js?ver=2.1.19' id='wdt-simple-table-responsive-js-js'></script>
vendor: 1 bytes, line 911
911
912<script src='../../wp-content/plugins/simple-lightbox/client/js/prod/lib.core.js?ver=2.8.1' id='slb_core-js'></script>
vendor: 1 bytes, line 912
912
913<script src='../../wp-content/plugins/simple-lightbox/client/js/prod/lib.view.js?ver=2.8.1' id='slb_view-js'></script>
vendor: 1 bytes, line 913
913
914<script src='../../wp-content/plugins/simple-lightbox/themes/baseline/js/prod/client.js?ver=2.8.1' id='slb-asset-slb_baseline-base-js'></script>
vendor: 1 bytes, line 914
914
915<script src='../../wp-content/plugins/simple-lightbox/themes/default/js/prod/client.js?ver=2.8.1' id='slb-asset-slb_default-base-js'></script>
vendor: 1 bytes, line 915
915
916<script src='../../wp-content/plugins/simple-lightbox/template-tags/item/js/prod/tag.item.js?ver=2.8.1' id='slb-asset-item-base-js'></script>
vendor: 1 bytes, line 916
916
917<script src='../../wp-content/plugins/simple-lightbox/template-tags/ui/js/prod/tag.ui.js?ver=2.8.1' id='slb-asset-ui-base-js'></script>
vendor: 1 bytes, line 917
917
918<script src='../../wp-content/plugins/simple-lightbox/content-handlers/image/js/prod/handler.image.js?ver=2.8.1' id='slb-asset-image-base-js'></script>
vendor: 1 bytes, line 918
918
919<script type="text/javascript" id="slb_footer">/* <![CDATA[ */if ( !!window.jQuery ) {(function($){$(document).ready(function(){if ( !!window.SLB && SLB.has_child('View.init') ) { SLB.View.init({"ui_autofit":true,"ui_animate":true,"slideshow_autostart":false,"slideshow_duration":"6","group_loop":true,"ui_overlay_opacity":"0.8","ui_title_default":false,"theme_default":"slb_default","ui_labels":{"loading":"\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430","close":"\u0417\u0430\u043a\u0440\u044b\u0442\u044c","nav_next":"\u0412\u043f\u0435\u0440\u0435\u0434","nav_prev":"\u041d\u0430\u0437\u0430\u0434","slideshow_start":"\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0441\u043b\u0430\u0439\u0434\u0448\u043e\u0443","slideshow_stop":"\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u043b\u0430\u0439\u0434\u0448\u043e\u0443","group_status":"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 %current%  \u0438\u0437 %total%"}}); }
920if ( !!window.SLB && SLB.has_child('View.assets') ) { {$.extend(SLB.View.assets, {"102619500":{"id":7274,"type":"image","internal":true,"source":"https:\/\/abap-blog.ru\/wp-content\/uploads\/2021\/04\/database-search-2361-2.png","title":"database-search-2361 (2)","caption":"","description":""},"1866869683":{"id":7270,"type":"image","internal":true,"source":"https:\/\/abap-blog.ru\/wp-content\/uploads\/2021\/04\/class_search.png","title":"class_search","caption":"","description":""},"2086633908":{"id":7271,"type":"image","internal":true,"source":"https:\/\/abap-blog.ru\/wp-content\/uploads\/2021\/04\/class_sh_conf.png","title":"class_sh_conf","caption":"","description":""},"117590559":{"id":7272,"type":"image","internal":true,"source":"https:\/\/abap-blog.ru\/wp-content\/uploads\/2021\/04\/sql_trace.png","title":"sql_trace","caption":"","description":""}});} }
921/* THM */
922if ( !!window.SLB && SLB.has_child('View.extend_theme') ) { SLB.View.extend_theme('slb_baseline',{"name":"\u0411\u0430\u0437\u043e\u0432\u0430\u044f \u043b\u0438\u043d\u0438\u044f","parent":"","styles":[{"handle":"base","uri":"https:\/\/abap-blog.ru\/wp-content\/plugins\/simple-lightbox\/themes\/baseline\/css\/style.css","deps":[]}],"layout_raw":"<div class=\"slb_container\"><div class=\"slb_content\">{{item.content}}<div class=\"slb_nav\"><span class=\"slb_prev\">{{ui.nav_prev}}<\/span><span class=\"slb_next\">{{ui.nav_next}}<\/span><\/div><div class=\"slb_controls\"><span class=\"slb_close\">{{ui.close}}<\/span><span class=\"slb_slideshow\">{{ui.slideshow_control}}<\/span><\/div><div class=\"slb_loading\">{{ui.loading}}<\/div><\/div><div class=\"slb_details\"><div class=\"inner\"><div class=\"slb_data\"><div class=\"slb_data_content\"><span class=\"slb_data_title\">{{item.title}}<\/span><span class=\"slb_group_status\">{{ui.group_status}}<\/span><div class=\"slb_data_desc\">{{item.description}}<\/div><\/div><\/div><div class=\"slb_nav\"><span class=\"slb_prev\">{{ui.nav_prev}}<\/span><span class=\"slb_next\">{{ui.nav_next}}<\/span><\/div><\/div><\/div><\/div>"}); }if ( !!window.SLB && SLB.has_child('View.extend_theme') ) { SLB.View.extend_theme('slb_default',{"name":"\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e (\u0441\u0432\u0435\u0442\u043b\u044b\u0439)","parent":"slb_baseline","styles":[{"handle":"base","uri":"https:\/\/abap-blog.ru\/wp-content\/plugins\/simple-lightbox\/themes\/default\/css\/style.css","deps":[]}]}); }})})(jQuery);}/* ]]> */</script>
vendor: 1 bytes, line 922
922
923<script type="text/javascript" id="slb_context">/* <![CDATA[ */if ( !!window.jQuery ) {(function($){$(document).ready(function(){if ( !!window.SLB ) { {$.extend(SLB, {"context":["public","user_guest"]});} }})})(jQuery);}/* ]]> */</script>
923
924			
924<script type="text/javascript">
925				var anr_onloadCallback = function() {
926					for ( var i = 0; i < document.forms.length; i++ ) {
927						var form = document.forms[i];
928						var captcha_div = form.querySelector( '.anr_captcha_field_div' );
929
930						if ( null === captcha_div )
931							continue;
932						captcha_div.innerHTML = '';
933						( function( form ) {
934							var anr_captcha = grecaptcha.render( captcha_div,{
935								'sitekey' : '6LfmhbAaAAAAABBrfPpMngzFHB6qZ4ATxXd3rvOR',
936								'size'  : 'normal',
937								'theme' : 'light'
938							});
939							if ( typeof jQuery !== 'undefined' ) {
940								jQuery( document.body ).on( 'checkout_error', function(){
941									grecaptcha.reset(anr_captcha);
942								});
943							}
944							if ( typeof wpcf7 !== 'undefined' ) {
945								document.addEventListener( 'wpcf7submit', function() {
946									grecaptcha.reset(anr_captcha);
947								}, false );
948							}
949						})(form);
950					}
951				};
952			</script>
952
953						
953<script src="../../recaptcha/api-1.js?onload=anr_onloadCallback&#038;render=explicit" async="" defer="">
954			</script>
954
955			</body>
956</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.