[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"portal-settings:stajic:ru":3,"public-menus:all":38,"$f3sp5u0xon09e3":221,"related:portfolio:solr-fuzzy-suggester-und-solr-infix-suggester-abfrage-ueber-ajax-und-filterung:ru:1":424},{"statusCode":4,"data":5,"message":37},200,{"tenantId":6,"lang":7,"defaultLang":8,"siteUrl":9,"contactEmail":10,"brandName":11,"logoUrl":12,"siteName":11,"siteDescription":13,"ogImage":10,"robotsIndex":14,"socialLinks":10,"reservedSlugs":10,"seoPolicy":15},"stajic","ru","de","https:\u002F\u002Fstajic.de",null,"Stajic Platform","\u002FLogo_Planet.svg","Stajic Portal",true,{"branding":16,"relatedContent":17,"crossDomainLinks":18},{"logoUrl":12},{"enabled":14},[19,22,25,28,31,34],{"url":20,"label":21,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Ffigure.rocks","figure.rocks",{"url":23,"label":24,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Floving.rocks","loving.rocks",{"url":26,"label":27,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Fbazify.com","bazify.com",{"url":29,"label":30,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Fbazify.de","bazify.de",{"url":32,"label":33,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Fbazify.at","bazify.at",{"url":35,"label":36,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Fbazify.ba","bazify.ba","Portal settings resolved",[39,45],{"id":40,"name":41,"location":42,"isActive":14,"isDefault":43,"items":44},1,"main-navigation","header",false,[],{"id":46,"name":47,"location":48,"isActive":14,"isDefault":14,"items":49},4,"main-menu","sidebar",[50,66,79,93,103,118,133],{"id":51,"title":52,"url":60,"target":61,"icon":62,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":64,"portfolioId":10,"children":65},"item-18",{"de":53,"en":54,"es":55,"fr":56,"it":54,"ru":57,"sr":58,"zh":59},"Startseite","Home","Inicio","Accueil","Главная","Почетна","首页","\u002Ffull-stack-web-developer-munich-performance-seo-and-maintainable-builds","_self","i-lucide-home","page",111,[],{"id":67,"title":68,"url":75,"target":61,"icon":76,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":77,"portfolioId":10,"children":78},"item-22",{"de":69,"en":69,"es":70,"fr":69,"it":71,"ru":72,"sr":73,"zh":74},"Vision","Visión","Visione","Видение","Визија","想象","\u002Fueber-uns-webdesign-muenchen-webaplikation","i-lucide-eye",113,[],{"id":80,"title":81,"url":89,"target":61,"icon":90,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":91,"portfolioId":10,"children":92},"item-19",{"de":82,"en":83,"es":84,"fr":83,"it":85,"ru":86,"sr":87,"zh":88},"Leistungen","Services","Servicios","Servizi","Услуги","Услуге","服务","\u002Fservices-dienstleistungen-muenchen","i-lucide-wrench",116,[],{"id":94,"title":95,"url":99,"target":61,"icon":100,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":101,"portfolioId":10,"children":102},"item-23",{"de":96,"en":96,"es":96,"fr":96,"it":96,"ru":97,"sr":97,"zh":98},"Blog","Блог","博客","\u002Fblog","i-lucide-book-open",112,[],{"id":104,"title":105,"url":114,"target":61,"icon":115,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":116,"portfolioId":10,"children":117},"item-32",{"de":106,"en":107,"es":108,"fr":109,"it":110,"ru":111,"sr":112,"zh":113},"Neue Technologien","New Technologies","Nuevas tecnologías","Nouvelles technologies","Nuove tecnologie","Новые технологии","Нове технологије","新技术！","\u002Fneue-webtechnologien","i-lucide-sparkles",122,[],{"id":119,"title":120,"url":129,"target":61,"icon":130,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":131,"portfolioId":10,"children":132},"item-20",{"de":121,"en":122,"es":123,"fr":124,"it":125,"ru":126,"sr":127,"zh":128},"Kontakt","Contact us!","Contacto","Contact","Contatto","Контакт","Контактирајте нас","联系我们！","\u002Fcontact","i-lucide-mail",115,[],{"id":134,"title":135,"url":144,"target":61,"icon":145,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":146,"portfolioId":10,"children":147},"item-21",{"de":136,"en":137,"es":138,"fr":139,"it":140,"ru":141,"sr":142,"zh":143},"Unsere Arbeit","Our Work","Nuestro trabajo","Nos réalisations","I nostri lavori","Наши работы","Наши радови","文件夹","\u002Fportfolio","i-lucide-briefcase",114,[148,161,175,191,206],{"id":149,"title":150,"url":144,"target":61,"icon":159,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":146,"portfolioId":10,"children":160},"item-24",{"de":151,"en":152,"es":153,"fr":154,"it":155,"ru":156,"sr":157,"zh":158},"Alle Projekte","All Projects","Todos los proyectos","Tous les projets","Tutti i progetti","Все проекты","Сви пројекти","所有项目","i-lucide-grid-3x3",[],{"id":162,"title":163,"url":171,"target":61,"icon":172,"isActive":14,"type":173,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":10,"portfolioId":10,"children":174},"item-29",{"de":164,"en":165,"es":166,"fr":167,"it":168,"ru":169,"sr":170,"zh":143},"Local Roots, Global Reach","Local Roots - Global Reach","Empresa local ","Entreprise locale","Azienda locale","Местная компания","Локално предузеће глобално тржиште","\u002Fportfolio\u002Flocal-roots-global-reach-communication-media-systems-for-modern-business","i-lucide-globe-2","custom",[],{"id":176,"title":177,"url":186,"target":61,"icon":187,"isActive":14,"type":188,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":10,"portfolioId":189,"children":190},"menu-2916d060-8681-482a-af9a-c107a8bc30d8",{"de":178,"en":179,"es":180,"fr":181,"it":182,"ru":183,"sr":184,"zh":185},"Von Rohdaten zu verifizierbarem KI-Kontext: Eine praktische Architektur für agentenbereite Informationen","From Raw Data to Verifiable AI Context:","De datos sin procesar a contexto de IA verificable: una arquitectura práctica para información lista para agentes","Des données brutes au contexte d'IA vérifiable : une architecture pratique pour des informations prêtes pour les agents","Dai dati grezzi a un contesto IA verificabile: Un'architettura pratica per informazioni pronte per gli agenti","От необработанных данных к верифицируемому контексту ИИ: практическая архитектура информации, готовой для агентов","Od sirovih podataka do proverljivog AI konteksta: Praktična arhitektura za informacije spremne za agente","从原始数据到可验证的 AI 上下文：面向智能体就绪信息的实用架构","\u002Fportfolio\u002Ffrom-raw-data-to-verifiable-ai-context-a-practical-architecture-for-agent-ready-information","i-lucide-database","portfolio",22,[],{"id":192,"title":193,"url":202,"target":61,"icon":203,"isActive":14,"type":188,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":10,"portfolioId":204,"children":205},"menu-e2061cd7-ff53-49d5-a0e8-3d49090577c0",{"de":194,"en":195,"es":196,"fr":197,"it":198,"ru":199,"sr":200,"zh":201},"Präsenzplattformen — Unternehmenskommunikation","Presence Platforms — Enterprise Communication","Plataformas de presencia — Comunicación empresarial","Plateformes de présence — Communication d'entreprise","Presence Platforms — Comunicazione aziendale","Платформы присутствия — Корпоративные коммуникации","Presence platforme — Poslovna komunikacija","Presence 平台 — 企业通信","\u002Fportfolio\u002Fpresence-platforms-enterprise-communication-that-wins-without-competing","i-lucide-badge-percent",21,[],{"id":207,"title":208,"url":217,"target":61,"icon":218,"isActive":14,"type":188,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":10,"portfolioId":219,"children":220},"menu-a781582e-e90d-418e-b8c9-b070bc37c37e",{"de":209,"en":210,"es":211,"fr":212,"it":213,"ru":214,"sr":215,"zh":216},"Maximierung des POS-ROI durch Konsistenz","Maximizing POS ROI Through Consistent","Maximizar el ROI del POS a través de constante","Maximiser le ROI du PDV grâce à la cohérence","Massimizzare il ROI del POS attraverso costante","Максимизация ROI POS за счет последовательного","Maksimizacija POS ROI-ja kroz dosledno","通过持续最大化 POS 投资回报率","\u002Fportfolio\u002Ffrom-vision-to-value-maximizing-pos-roi-through-consistent-ci-creation-and-strategic-branding","i-lucide-briefcase-business",11,[],{"statusCode":4,"data":222,"message":423},{"id":223,"title":224,"slug":225,"content":226,"contentJson":227,"excerpt":295,"featuredImage":296,"featuredImageAlt":297,"featuredImageCaption":10,"featuredImageTitle":10,"featuredImageCopyright":10,"featuredImageAuthor":10,"featuredImageSourceUrl":10,"featuredImageLicense":10,"featuredImageIsAiGenerated":43,"status":298,"publishedAt":299,"createdAt":300,"updatedAt":301,"seoLocalePaths":302,"author":310,"translations":315},"15","Solr Fuzzy Suggester и Solr Infix Suggester через Ajax","solr-fuzzy-suggester-und-solr-infix-suggester-abfrage-ueber-ajax-und-filterung","{\"time\":1766400020000,\"blocks\":[{\"data\":{\"text\":\"Описание проекта\",\"level\":2},\"type\":\"header\"},{\"data\":{\"text\":\"Для эффективного поиска на веб-сайте важно, чтобы пользователи быстро и легко находили соответствующие результаты. Solr Fuzzy Suggester и Solr Infix Suggester предлагают эффективное решение для этого. Их можно вызывать и фильтровать с помощью Ajax-запросов.\"},\"type\":\"paragraph\"},{\"data\":{\"text\":\"Suggester активируется через XML-компонент SuggestComponent в файле solrconfig.xml, как показано в следующем примере кода:\"},\"type\":\"paragraph\"},{\"data\":{\"code\":\"\u003CsearchComponent name=\\\"suggest\\\" class=\\\"solr.SuggestComponent\\\">\\n  \u003Clst name=\\\"suggester\\\">\\n    \u003Cstr name=\\\"name\\\">mySuggester\u003C\u002Fstr>\\n    \u003Cstr name=\\\"lookupImpl\\\">FuzzyLookupFactory\u003C\u002Fstr>\\n    \u003Cstr name=\\\"dictionaryImpl\\\">DocumentDictionaryFactory\u003C\u002Fstr>\\n    \u003Cstr name=\\\"field\\\">suggest_field\u003C\u002Fstr>\\n    \u003Cstr name=\\\"weightField\\\">weight\u003C\u002Fstr>\\n    \u003Cstr name=\\\"suggestAnalyzerFieldType\\\">text_general\u003C\u002Fstr>\\n    \u003Cstr name=\\\"buildOnStartup\\\">true\u003C\u002Fstr>\\n  \u003C\u002Flst>\\n\u003C\u002FsearchComponent>\"},\"type\":\"code\"},{\"data\":{\"text\":\"Используя Solr Fuzzy Suggester и Solr Infix Suggester, пользователи могут быстро и легко получать релевантные результаты, поскольку они получают предложения и функции автозаполнения. Результаты запроса затем могут быть отфильтрованы, чтобы гарантировать отображение только наиболее релевантных результатов.\"},\"type\":\"paragraph\"},{\"data\":{\"text\":\"Внедряя эти технологии, веб-сайты могут предложить улучшенную функциональность поиска и лучший пользовательский опыт.\"},\"type\":\"paragraph\"},{\"data\":{\"text\":\"Пример конфигурации (Syntax Highlighter)\",\"level\":3},\"type\":\"header\"},{\"data\":{\"code\":\"\u003CsearchComponent name=\\\"suggest\\\" class=\\\"solr.SuggestComponent\\\">\\n  \u003Clst name=\\\"suggester\\\">\\n    \u003Cstr name=\\\"name\\\">mySuggester\u003C\u002Fstr>\\n    \u003Cstr name=\\\"lookupImpl\\\">FuzzyLookupFactory\u003C\u002Fstr>\\n    \u003Cstr name=\\\"dictionaryImpl\\\">DocumentDictionaryFactory\u003C\u002Fstr>\\n    \u003Cstr name=\\\"field\\\">cat\u003C\u002Fstr>\\n    \u003Cstr name=\\\"weightField\\\">price\u003C\u002Fstr>\\n    \u003Cstr name=\\\"suggestAnalyzerFieldType\\\">string\u003C\u002Fstr>\\n    \u003Cstr name=\\\"buildOnStartup\\\">false\u003C\u002Fstr>\\n  \u003C\u002Flst>\\n\u003C\u002FsearchComponent>\"},\"type\":\"code\"},{\"data\":{\"text\":\"Изображение показывает, что делает suggester: введенные данные не дают точного совпадения, и Solr Suggester возвращает похожие предложения. Существует несколько способов определения схожести строк. Я упомяну здесь два.\"},\"type\":\"paragraph\"},{\"data\":{\"text\":\"1) Fuzzy (расстояние Левенштейна)\",\"level\":3},\"type\":\"header\"},{\"data\":{\"text\":\"Первая возможность — это fuzzy (нечеткий поиск), который основан на алгоритме расстояния Левенштейна.\"},\"type\":\"paragraph\"},{\"data\":{\"text\":\"В JavaScript это выглядело бы так:\"},\"type\":\"paragraph\"},{\"data\":{\"code\":\"function levenshtein(a, b) {\\n  var t = [], u, i, j, m = a.length, n = b.length;\\n  if (!m) { return n; }\\n  if (!n) { return m; }\\n  for (j = 0; j \u003C= n; j++) { t[j] = j; }\\n  for (i = 1; i \u003C= m; i++) {\\n    for (u = [i], j = 1; j \u003C= n; j++) {\\n      u[j] = a[i - 1] === b[j - 1] ? t[j - 1] : Math.min(t[j - 1], t[j], u[j - 1]) + 1;\\n    } t = u;\\n  } return u[n];\\n}\\n\u002F\u002F a and b are strings\"},\"type\":\"code\"},{\"data\":{\"text\":\"2) Infix (сопоставление префиксов и индекс Lucene)\",\"level\":3},\"type\":\"header\"},{\"data\":{\"text\":\"Вторая возможность — это infix (инфиксный поиск), который основан на сопоставлении префиксов с токенами в индексированном тексте. Он использует индекс Lucene для своего словаря. Lucene — это библиотека полнотекстового поиска (Apache Software Foundation), содержащая программные библиотеки с открытым исходным кодом.\"},\"type\":\"paragraph\"},{\"data\":{\"text\":\"На практике это индексированная структура, которая создает токены во время обработки. Пробелы могут обозначать конец или начало строки. Отдельные строки нормализуются для лучшего сопоставления — например, преобразование заглавных букв в строчные — а также индексируются несколько связанных вариантов из словаря.\"},\"type\":\"paragraph\"},{\"data\":{\"text\":\"Преимущество заключается в опциях, которые можно определить в запросе, что обеспечивает большую гибкость.\"},\"type\":\"paragraph\"},{\"data\":{\"text\":\"Что делают коммерческие поисковые системы?\",\"level\":3},\"type\":\"header\"},{\"data\":{\"text\":\"Комбинация обоих подходов — это, по сути, то, что предлагают большинство поисковых систем. При вводе данных в поле поиска отдельные строки предлагаются в контексте других строк и терминов. Это приводит к семантическому поиску.\"},\"type\":\"paragraph\"},{\"data\":{\"text\":\"Для крупных поисковых провайдеров эти результаты коммерчески скорректированы и направляют пользователей к приоритетным индексам. Страницы сортируются и категоризируются с помощью правил и рекомендаций. Группы интересов определяются с помощью технологий отслеживания, алгоритмов ИИ и маркетинга баз данных, а поиск адаптируется под целевую группу.\"},\"type\":\"paragraph\"}],\"version\":\"2.30.0\"}",{"time":228,"blocks":229,"version":294},1766400020000,[230,234,238,241,245,248,251,255,258,261,264,267,270,273,276,279,282,285,288,291],{"data":231,"type":42},{"text":232,"level":233},"Описание проекта",2,{"data":235,"type":237},{"text":236},"Для эффективного поиска на веб-сайте важно, чтобы пользователи быстро и легко находили соответствующие результаты. Solr Fuzzy Suggester и Solr Infix Suggester предлагают эффективное решение для этого. Их можно вызывать и фильтровать с помощью Ajax-запросов.","paragraph",{"data":239,"type":237},{"text":240},"Suggester активируется через XML-компонент SuggestComponent в файле solrconfig.xml, как показано в следующем примере кода:",{"data":242,"type":244},{"code":243},"\u003CsearchComponent name=\"suggest\" class=\"solr.SuggestComponent\">\n  \u003Clst name=\"suggester\">\n    \u003Cstr name=\"name\">mySuggester\u003C\u002Fstr>\n    \u003Cstr name=\"lookupImpl\">FuzzyLookupFactory\u003C\u002Fstr>\n    \u003Cstr name=\"dictionaryImpl\">DocumentDictionaryFactory\u003C\u002Fstr>\n    \u003Cstr name=\"field\">suggest_field\u003C\u002Fstr>\n    \u003Cstr name=\"weightField\">weight\u003C\u002Fstr>\n    \u003Cstr name=\"suggestAnalyzerFieldType\">text_general\u003C\u002Fstr>\n    \u003Cstr name=\"buildOnStartup\">true\u003C\u002Fstr>\n  \u003C\u002Flst>\n\u003C\u002FsearchComponent>","code",{"data":246,"type":237},{"text":247},"Используя Solr Fuzzy Suggester и Solr Infix Suggester, пользователи могут быстро и легко получать релевантные результаты, поскольку они получают предложения и функции автозаполнения. Результаты запроса затем могут быть отфильтрованы, чтобы гарантировать отображение только наиболее релевантных результатов.",{"data":249,"type":237},{"text":250},"Внедряя эти технологии, веб-сайты могут предложить улучшенную функциональность поиска и лучший пользовательский опыт.",{"data":252,"type":42},{"text":253,"level":254},"Пример конфигурации (Syntax Highlighter)",3,{"data":256,"type":244},{"code":257},"\u003CsearchComponent name=\"suggest\" class=\"solr.SuggestComponent\">\n  \u003Clst name=\"suggester\">\n    \u003Cstr name=\"name\">mySuggester\u003C\u002Fstr>\n    \u003Cstr name=\"lookupImpl\">FuzzyLookupFactory\u003C\u002Fstr>\n    \u003Cstr name=\"dictionaryImpl\">DocumentDictionaryFactory\u003C\u002Fstr>\n    \u003Cstr name=\"field\">cat\u003C\u002Fstr>\n    \u003Cstr name=\"weightField\">price\u003C\u002Fstr>\n    \u003Cstr name=\"suggestAnalyzerFieldType\">string\u003C\u002Fstr>\n    \u003Cstr name=\"buildOnStartup\">false\u003C\u002Fstr>\n  \u003C\u002Flst>\n\u003C\u002FsearchComponent>",{"data":259,"type":237},{"text":260},"Изображение показывает, что делает suggester: введенные данные не дают точного совпадения, и Solr Suggester возвращает похожие предложения. Существует несколько способов определения схожести строк. Я упомяну здесь два.",{"data":262,"type":42},{"text":263,"level":254},"1) Fuzzy (расстояние Левенштейна)",{"data":265,"type":237},{"text":266},"Первая возможность — это fuzzy (нечеткий поиск), который основан на алгоритме расстояния Левенштейна.",{"data":268,"type":237},{"text":269},"В JavaScript это выглядело бы так:",{"data":271,"type":244},{"code":272},"function levenshtein(a, b) {\n  var t = [], u, i, j, m = a.length, n = b.length;\n  if (!m) { return n; }\n  if (!n) { return m; }\n  for (j = 0; j \u003C= n; j++) { t[j] = j; }\n  for (i = 1; i \u003C= m; i++) {\n    for (u = [i], j = 1; j \u003C= n; j++) {\n      u[j] = a[i - 1] === b[j - 1] ? t[j - 1] : Math.min(t[j - 1], t[j], u[j - 1]) + 1;\n    } t = u;\n  } return u[n];\n}\n\u002F\u002F a and b are strings",{"data":274,"type":42},{"text":275,"level":254},"2) Infix (сопоставление префиксов и индекс Lucene)",{"data":277,"type":237},{"text":278},"Вторая возможность — это infix (инфиксный поиск), который основан на сопоставлении префиксов с токенами в индексированном тексте. Он использует индекс Lucene для своего словаря. Lucene — это библиотека полнотекстового поиска (Apache Software Foundation), содержащая программные библиотеки с открытым исходным кодом.",{"data":280,"type":237},{"text":281},"На практике это индексированная структура, которая создает токены во время обработки. Пробелы могут обозначать конец или начало строки. Отдельные строки нормализуются для лучшего сопоставления — например, преобразование заглавных букв в строчные — а также индексируются несколько связанных вариантов из словаря.",{"data":283,"type":237},{"text":284},"Преимущество заключается в опциях, которые можно определить в запросе, что обеспечивает большую гибкость.",{"data":286,"type":42},{"text":287,"level":254},"Что делают коммерческие поисковые системы?",{"data":289,"type":237},{"text":290},"Комбинация обоих подходов — это, по сути, то, что предлагают большинство поисковых систем. При вводе данных в поле поиска отдельные строки предлагаются в контексте других строк и терминов. Это приводит к семантическому поиску.",{"data":292,"type":237},{"text":293},"Для крупных поисковых провайдеров эти результаты коммерчески скорректированы и направляют пользователей к приоритетным индексам. Страницы сортируются и категоризируются с помощью правил и рекомендаций. Группы интересов определяются с помощью технологий отслеживания, алгоритмов ИИ и маркетинга баз данных, а поиск адаптируется под целевую группу.","2.30.0","Для эффективного поиска по сайту важно, чтобы пользователи быстро и легко находили релевантные результаты. Solr Fuzzy Suggester и Solr Infix Suggester предлагают для этого эффективное решение. Их можно вызывать и фильтровать с помощью Ajax-запросов.","\u002Fuploads\u002F2019\u002F11\u002FSolr-Suggester-Fuzzy-infix.webp","Solr-Suggester-Fuzzy-infix","PUBLISHED","2025-10-30T13:36:00.000Z","2025-10-30T13:36:08.109Z","2025-12-25T18:35:30.027Z",{"en":303,"de":304,"sr":305,"es":306,"fr":307,"it":308,"ru":309},"\u002Fportfolio\u002Fsolr-fuzzy-suggester-und-solr-infix-suggester-abfrage-ueber-ajax-und-filterung","\u002Fde\u002Fportfolio\u002Fsolr-fuzzy-suggester-und-solr-infix-suggester-abfrage-ueber-ajax-und-filterung","\u002Fsr\u002Fportfolio\u002Fsolr-fuzzy-suggester-und-solr-infix-suggester-abfrage-ueber-ajax-und-filterung","\u002Fes\u002Fportfolio\u002Fsolr-fuzzy-suggester-und-solr-infix-suggester-abfrage-ueber-ajax-und-filterung","\u002Ffr\u002Fportfolio\u002Fsolr-fuzzy-suggester-und-solr-infix-suggester-abfrage-ueber-ajax-und-filterung","\u002Fit\u002Fportfolio\u002Fsolr-fuzzy-suggester-und-solr-infix-suggester-abfrage-ueber-ajax-und-filterung","\u002Fru\u002Fportfolio\u002Fsolr-fuzzy-suggester-und-solr-infix-suggester-abfrage-ueber-ajax-und-filterung",{"id":311,"login":312,"email":313,"displayName":314},"1","admin","","Admin User",[316,380],{"lang":317,"title":318,"content":319,"contentJson":320,"excerpt":379},"en","Solr Fuzzy Suggester and Solr Infix Suggester over Ajax","{\"time\":1766400020000,\"blocks\":[{\"data\":{\"text\":\"Project Description\",\"level\":2},\"type\":\"header\"},{\"data\":{\"text\":\"For efficient searching on a website, it is important that users quickly and easily find the appropriate results. Solr Fuzzy Suggester and Solr Infix Suggester offer an efficient solution for this. They can be called and filtered via Ajax queries.\"},\"type\":\"paragraph\"},{\"data\":{\"text\":\"The suggester is activated via the XML component SuggestComponent in the solrconfig.xml file, as shown in the following code example:\"},\"type\":\"paragraph\"},{\"data\":{\"code\":\"\u003CsearchComponent name=\\\"suggest\\\" class=\\\"solr.SuggestComponent\\\">\\n  \u003Clst name=\\\"suggester\\\">\\n    \u003Cstr name=\\\"name\\\">mySuggester\u003C\u002Fstr>\\n    \u003Cstr name=\\\"lookupImpl\\\">FuzzyLookupFactory\u003C\u002Fstr>\\n    \u003Cstr name=\\\"dictionaryImpl\\\">DocumentDictionaryFactory\u003C\u002Fstr>\\n    \u003Cstr name=\\\"field\\\">suggest_field\u003C\u002Fstr>\\n    \u003Cstr name=\\\"weightField\\\">weight\u003C\u002Fstr>\\n    \u003Cstr name=\\\"suggestAnalyzerFieldType\\\">text_general\u003C\u002Fstr>\\n    \u003Cstr name=\\\"buildOnStartup\\\">true\u003C\u002Fstr>\\n  \u003C\u002Flst>\\n\u003C\u002FsearchComponent>\"},\"type\":\"code\"},{\"data\":{\"text\":\"By using Solr Fuzzy Suggester and Solr Infix Suggester, users can quickly and easily get relevant results, as they receive suggestions and auto-completion features. Query results can then be filtered to ensure that only the most relevant results are displayed.\"},\"type\":\"paragraph\"},{\"data\":{\"text\":\"By implementing these technologies, websites can offer improved search functionality and a better user experience.\"},\"type\":\"paragraph\"},{\"data\":{\"text\":\"Configuration Example (Syntax Highlighter)\",\"level\":3},\"type\":\"header\"},{\"data\":{\"code\":\"\u003CsearchComponent name=\\\"suggest\\\" class=\\\"solr.SuggestComponent\\\">\\n  \u003Clst name=\\\"suggester\\\">\\n    \u003Cstr name=\\\"name\\\">mySuggester\u003C\u002Fstr>\\n    \u003Cstr name=\\\"lookupImpl\\\">FuzzyLookupFactory\u003C\u002Fstr>\\n    \u003Cstr name=\\\"dictionaryImpl\\\">DocumentDictionaryFactory\u003C\u002Fstr>\\n    \u003Cstr name=\\\"field\\\">cat\u003C\u002Fstr>\\n    \u003Cstr name=\\\"weightField\\\">price\u003C\u002Fstr>\\n    \u003Cstr name=\\\"suggestAnalyzerFieldType\\\">string\u003C\u002Fstr>\\n    \u003Cstr name=\\\"buildOnStartup\\\">false\u003C\u002Fstr>\\n  \u003C\u002Flst>\\n\u003C\u002FsearchComponent>\"},\"type\":\"code\"},{\"data\":{\"text\":\"The image shows what the suggester does: the input does not yield an exact match, and the Solr Suggester returns similar suggestions. There are several ways to determine string similarity. I will mention two here.\"},\"type\":\"paragraph\"},{\"data\":{\"text\":\"1) Fuzzy (Levenshtein distance)\",\"level\":3},\"type\":\"header\"},{\"data\":{\"text\":\"The first possibility is fuzzy, which is based on the Levenshtein distance algorithm.\"},\"type\":\"paragraph\"},{\"data\":{\"text\":\"In JavaScript, it would look like this:\"},\"type\":\"paragraph\"},{\"data\":{\"code\":\"function levenshtein(a, b) {\\n  var t = [], u, i, j, m = a.length, n = b.length;\\n  if (!m) { return n; }\\n  if (!n) { return m; }\\n  for (j = 0; j \u003C= n; j++) { t[j] = j; }\\n  for (i = 1; i \u003C= m; i++) {\\n    for (u = [i], j = 1; j \u003C= n; j++) {\\n      u[j] = a[i - 1] === b[j - 1] ? t[j - 1] : Math.min(t[j - 1], t[j], u[j - 1]) + 1;\\n    } t = u;\\n  } return u[n];\\n}\\n\u002F\u002F a and b are strings\"},\"type\":\"code\"},{\"data\":{\"text\":\"2) Infix (prefix matching and Lucene index)\",\"level\":3},\"type\":\"header\"},{\"data\":{\"text\":\"The second possibility is infix, which is based on prefix matching with tokens in the indexed text. It uses the Lucene index for its dictionary. Lucene is a full-text search library (Apache Software Foundation) that contains open-source programming libraries.\"},\"type\":\"paragraph\"},{\"data\":{\"text\":\"In practice, it is an indexed structure that creates tokens during processing. Spaces can mark the end or beginning of a string. Individual strings are normalized for better matches — for example, converting uppercase letters to lowercase — and multiple related variants from the dictionary are also indexed.\"},\"type\":\"paragraph\"},{\"data\":{\"text\":\"The advantage lies in the options that can be defined in the query, which provides greater flexibility.\"},\"type\":\"paragraph\"},{\"data\":{\"text\":\"What do commercial search engines do?\",\"level\":3},\"type\":\"header\"},{\"data\":{\"text\":\"A combination of both approaches is essentially what most search engines offer. When entering input into the search field, individual strings are suggested in the context of other strings and terms. This results in semantic search.\"},\"type\":\"paragraph\"},{\"data\":{\"text\":\"For large search providers, these results are commercially adjusted and direct users towards priority indices. Pages are sorted and categorized via rules and guidelines. Interest groups are determined via tracking technologies, AI algorithms, and database marketing, and the search is tailored to the target group.\"},\"type\":\"paragraph\"}],\"version\":\"2.30.0\"}",{"time":228,"blocks":321,"version":294},[322,325,328,331,333,336,339,342,344,347,350,353,356,358,361,364,367,370,373,376],{"data":323,"type":42},{"text":324,"level":233},"Project Description",{"data":326,"type":237},{"text":327},"For efficient searching on a website, it is important that users quickly and easily find the appropriate results. Solr Fuzzy Suggester and Solr Infix Suggester offer an efficient solution for this. They can be called and filtered via Ajax queries.",{"data":329,"type":237},{"text":330},"The suggester is activated via the XML component SuggestComponent in the solrconfig.xml file, as shown in the following code example:",{"data":332,"type":244},{"code":243},{"data":334,"type":237},{"text":335},"By using Solr Fuzzy Suggester and Solr Infix Suggester, users can quickly and easily get relevant results, as they receive suggestions and auto-completion features. Query results can then be filtered to ensure that only the most relevant results are displayed.",{"data":337,"type":237},{"text":338},"By implementing these technologies, websites can offer improved search functionality and a better user experience.",{"data":340,"type":42},{"text":341,"level":254},"Configuration Example (Syntax Highlighter)",{"data":343,"type":244},{"code":257},{"data":345,"type":237},{"text":346},"The image shows what the suggester does: the input does not yield an exact match, and the Solr Suggester returns similar suggestions. There are several ways to determine string similarity. I will mention two here.",{"data":348,"type":42},{"text":349,"level":254},"1) Fuzzy (Levenshtein distance)",{"data":351,"type":237},{"text":352},"The first possibility is fuzzy, which is based on the Levenshtein distance algorithm.",{"data":354,"type":237},{"text":355},"In JavaScript, it would look like this:",{"data":357,"type":244},{"code":272},{"data":359,"type":42},{"text":360,"level":254},"2) Infix (prefix matching and Lucene index)",{"data":362,"type":237},{"text":363},"The second possibility is infix, which is based on prefix matching with tokens in the indexed text. It uses the Lucene index for its dictionary. Lucene is a full-text search library (Apache Software Foundation) that contains open-source programming libraries.",{"data":365,"type":237},{"text":366},"In practice, it is an indexed structure that creates tokens during processing. Spaces can mark the end or beginning of a string. Individual strings are normalized for better matches — for example, converting uppercase letters to lowercase — and multiple related variants from the dictionary are also indexed.",{"data":368,"type":237},{"text":369},"The advantage lies in the options that can be defined in the query, which provides greater flexibility.",{"data":371,"type":42},{"text":372,"level":254},"What do commercial search engines do?",{"data":374,"type":237},{"text":375},"A combination of both approaches is essentially what most search engines offer. When entering input into the search field, individual strings are suggested in the context of other strings and terms. This results in semantic search.",{"data":377,"type":237},{"text":378},"For large search providers, these results are commercially adjusted and direct users towards priority indices. Pages are sorted and categorized via rules and guidelines. Interest groups are determined via tracking technologies, AI algorithms, and database marketing, and the search is tailored to the target group.","For effective website search, it is important that users quickly and easily find relevant results. Solr Fuzzy Suggester and Solr Infix Suggester offer an efficient solution for this. They can be called and filtered via Ajax queries.",{"lang":7,"title":224,"content":226,"contentJson":381,"excerpt":295},{"time":228,"blocks":382,"version":294},[383,385,387,389,391,393,395,397,399,401,403,405,407,409,411,413,415,417,419,421],{"data":384,"type":42},{"text":232,"level":233},{"data":386,"type":237},{"text":236},{"data":388,"type":237},{"text":240},{"data":390,"type":244},{"code":243},{"data":392,"type":237},{"text":247},{"data":394,"type":237},{"text":250},{"data":396,"type":42},{"text":253,"level":254},{"data":398,"type":244},{"code":257},{"data":400,"type":237},{"text":260},{"data":402,"type":42},{"text":263,"level":254},{"data":404,"type":237},{"text":266},{"data":406,"type":237},{"text":269},{"data":408,"type":244},{"code":272},{"data":410,"type":42},{"text":275,"level":254},{"data":412,"type":237},{"text":278},{"data":414,"type":237},{"text":281},{"data":416,"type":237},{"text":284},{"data":418,"type":42},{"text":287,"level":254},{"data":420,"type":237},{"text":290},{"data":422,"type":237},{"text":293},"Portfolio erfolgreich abgerufen",{"items":425,"source":507,"manualIds":508,"manualMatchedIds":509},[426,433,440,447,454,460,467,474,480,487,493,500],{"id":427,"slug":428,"title":429,"excerpt":430,"featuredImage":431,"publishedAt":432},"13","mobile-app-creation-with-apache-cordova-cross-platform-case-study","Разработка мобильных приложений с Apache Cordova: Кроссплатформенный кейс-стади","Изучите, как Apache Cordova превращает веб-приложения в кроссплатформенные мобильные решения для Android, iOS и других платформ, с подробным описанием процесса, стека технологий и преимуществ.","\u002Fuploads\u002F2018\u002F01\u002FApache-Ubuntu-Install-Certbot_stajic_de_Suchmaschinen_Webcrawler_Suchergebnissen.webp","2025-10-30T12:36:00.000Z",{"id":434,"slug":435,"title":436,"excerpt":437,"featuredImage":438,"publishedAt":439},"21","presence-platforms-enterprise-communication-that-wins-without-competing","Платформы присутствия — корпоративные коммуникации, которые побеждают без конкуренции","Платформа присутствия превращает операционную деятельность в ясность уровня принятия решений: контролируемые утверждения, повторяемые форматы, внутренние связи, направляющие решения, и еженедельный цикл обучения, который укрепляет доверие и пайплайн.","\u002Fuploads\u002F2026\u002F02\u002Fpresence-platforms-enterprise-communication-that-wins-without-competing-1771263312197-h9p74p.webp","2026-02-16T14:01:00.000Z",{"id":441,"slug":442,"title":443,"excerpt":444,"featuredImage":445,"publishedAt":446},"14","digitalisierungsportal-archiv-museum-bibliothek-ead-lido-mets-mods","Портал оцифровки для Архива Музея Библиотеки","Цифровой Немецкий музей посвящен цифровизации и научной обработке фондов собрания объектов, архива, а также библиотеки Немецкого музея.","\u002Fuploads\u002F2019\u002F04\u002F2019-11-21_101547_digital.deutsches-museum.de_-1.webp","2025-10-30T11:36:00.000Z",{"id":448,"slug":449,"title":450,"excerpt":451,"featuredImage":452,"publishedAt":453},"11","from-vision-to-value-maximizing-pos-roi-through-consistent-ci-creation-and-strategic-branding","От видения к ценности: максимизация ROI в POS через создание последовательного CI и стратегический брендинг","В современном ритейле преодоление разрыва между творческим видением и финансовой ценностью требует согласования корпоративной идентичности (CI) с точками продаж (POS). В данном кейсе рассматривается методология устранения когнитивных барьеров для повышения ROI.","\u002Fuploads\u002F2026\u002F02\u002Ffrom-vision-to-value-maximizing-pos-roi-through-consistent-ci-creation-and-strategic-branding-1771265752834-ha552f.webp","2025-10-30T08:36:00.000Z",{"id":455,"slug":456,"title":457,"excerpt":458,"featuredImage":459,"publishedAt":446},"12","seo-sem-branding-mobile-webseite-muenchen","SEO Мобильное Веб-приложение Мюнхен","SEO для мобильных веб-приложений в Мюнхене: чистая индексация, аналитика, структурированные карты сайта и оптимизация для Google News как прочный фундамент для устойчивой видимости.","\u002Fuploads\u002F2014\u002F09\u002FSEO-Mobile-Webapplikation-Muenchen-www.stajic.de_4.webp",{"id":461,"slug":462,"title":463,"excerpt":464,"featuredImage":465,"publishedAt":466},"23","source-of-truth-enterprise-intelligence-platform","Платформа корпоративного интеллекта «Источник истины»","Самостоятельно размещаемая платформа корпоративного интеллекта с управлением на основе доказательств, которая превращает внутренние знания компании, документы и бизнес-данные в прослеживаемый интеллект для исследований, принятия решений, мониторинга и контролируемого выполнения ИИ.","\u002Fuploads\u002F2026\u002F10\u002Fsource-of-truth-enterprise-intelligence-platform-1791975594140-vygojf.webp","2026-10-14T06:27:00.000Z",{"id":468,"slug":469,"title":470,"excerpt":471,"featuredImage":472,"publishedAt":473},"19","from-global-business-to-the-kitchen-a-reverse-communication-system-that-still-scales","От глобального бизнеса до кухни — система обратной коммуникации, которая по-прежнему масштабируется","Перестаньте масштабироваться на основе шума. Начните с глобальных сигналов, сведите их к нескольким устойчивым истинам и превратите их в еженедельные шаблоны, чек-листы и повторяемые “меню”, которые приносят реальную ценность.","\u002Fuploads\u002F2026\u002F02\u002Ffrom-global-business-to-the-kitchen-a-reverse-communication-system-that-still-scales-1771251820950-zhp2bz.webp","2026-02-16T10:13:00.000Z",{"id":475,"slug":476,"title":477,"excerpt":10,"featuredImage":478,"publishedAt":479},"16","automobile-bauer-joomla","Web Presence Making a Statement - Automobile Bauer Joomla","\u002Fuploads\u002F2014\u002F09\u002F2019-11-21_145554_automobile-bauer.de_.webp","2025-10-30T14:36:08.121Z",{"id":481,"slug":482,"title":483,"excerpt":484,"featuredImage":485,"publishedAt":486},"22","from-raw-data-to-verifiable-ai-context-a-practical-architecture-for-agent-ready-information","От сырых данных к верифицируемому контексту ИИ: практическая архитектура для информации, готовой к использованию агентами","Системы ИИ в основном терпят неудачу не из-за нехватки текста. Они терпят неудачу потому, что идентичность, происхождение, конфликты, неизвестные и достоверность часто отсутствуют в получаемом ими контексте. В этой статье документируется практическая архитектура для превращения разнородных бизнес-данных в контролируемые, многоразовые информационные объекты для людей, приложений и агентов.","\u002Fuploads\u002F2026\u002F09\u002Ffrom-raw-data-to-verifiable-ai-context-a-practical-architecture-for-agent-ready-information-1790741906168-mo6sw7.webp","2026-09-30T00:16:00.000Z",{"id":311,"slug":488,"title":489,"excerpt":490,"featuredImage":491,"publishedAt":492},"nuxtwo-theme-showcase","Производственная платформа корпоративного уровня","CMS- и портальная платформа корпоративного уровня с многобазовой архитектурой, истинной многоязычностью и профессиональной миграцией WordPress. Разработано для масштабируемых, безопасных и перспективных издательских систем.","\u002Fuploads\u002F2025\u002F01\u002Fhow-to-scan-and-clean-your-cloud-linux-server-from-malware-large.webp","2025-10-31T05:31:00.000Z",{"id":494,"slug":495,"title":496,"excerpt":497,"featuredImage":498,"publishedAt":499},"17","integration-von-gpt-4-mit-libreoffice-auf-ubuntu-eine-vollstaendige-anleitung","LibreOffice ChatGPT Интеграция Макросов Тематическое Исследование","Исследуйте пользовательскую интеграцию макросов Python OpenAI для ChatGPT в LibreOffice, улучшая рабочие процессы с помощью ИИ непосредственно в ваших документах.","\u002Fuploads\u002F2024\u002F05\u002FDALL·E-2024-05-21-23.36.22-An-illustration-of-a-modern-desktop-environment-showing-LibreOffice-on-an-Ubuntu-system.-The-image-should-depict-a-Python-script-running-within-LibreO-large.webp","2026-01-15T17:44:00.000Z",{"id":501,"slug":502,"title":503,"excerpt":504,"featuredImage":505,"publishedAt":506},"18","local-roots-global-reach-communication-media-systems-for-modern-business","Локальные корни, глобальный охват — коммуникационные и медиасистемы для современного бизнеса","Я помогаю локальному бизнесу выглядеть как мировые бренды: четкое позиционирование, высокоэффективный контент и дистрибуция, которая превращает внимание в лидов.","\u002Fuploads\u002F2026\u002F02\u002Flocal-roots-global-reach-communication-media-systems-for-modern-business-1771251472163-5ujsqm.webp","2026-02-16T02:13:00.000Z","fallback",[],[]]