[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"portal-settings:stajic:fr":3,"public-menus:all":38,"$f3sjx5y8wvo41i":221,"related:portfolio:solr-fuzzy-suggester-und-solr-infix-suggester-abfrage-ueber-ajax-und-filterung:fr: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","fr","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 et Solr Infix Suggester via Ajax","solr-fuzzy-suggester-und-solr-infix-suggester-abfrage-ueber-ajax-und-filterung","{\"time\":1766400020000,\"blocks\":[{\"data\":{\"text\":\"Description du projet\",\"level\":2},\"type\":\"header\"},{\"data\":{\"text\":\"Pour une recherche efficace sur un site web, il est important que les utilisateurs trouvent rapidement et facilement les résultats appropriés. Solr Fuzzy Suggester et Solr Infix Suggester offrent une solution efficace à cet égard. Ils peuvent être appelés et filtrés via des requêtes Ajax.\"},\"type\":\"paragraph\"},{\"data\":{\"text\":\"Le suggester est activé via le composant XML SuggestComponent dans le fichier solrconfig.xml, comme illustré dans l'exemple de code suivant :\"},\"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\":\"En utilisant Solr Fuzzy Suggester et Solr Infix Suggester, les utilisateurs peuvent obtenir rapidement et facilement des résultats pertinents, car ils bénéficient de suggestions et de fonctionnalités d'auto-complétion. Les résultats de la requête peuvent ensuite être filtrés pour garantir que seuls les résultats les plus pertinents sont affichés.\"},\"type\":\"paragraph\"},{\"data\":{\"text\":\"En mettant en œuvre ces technologies, les sites web peuvent offrir une fonctionnalité de recherche améliorée et une meilleure expérience utilisateur.\"},\"type\":\"paragraph\"},{\"data\":{\"text\":\"Exemple de configuration (Coloration syntaxique)\",\"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\":\"L'image montre ce que fait le suggester : l'entrée ne donne pas de correspondance exacte, et le Solr Suggester renvoie des suggestions similaires. Il existe plusieurs façons de déterminer la similarité des chaînes de caractères. J'en mentionnerai deux ici.\"},\"type\":\"paragraph\"},{\"data\":{\"text\":\"1) Fuzzy (distance de Levenshtein)\",\"level\":3},\"type\":\"header\"},{\"data\":{\"text\":\"La première possibilité est le fuzzy (flou), qui est basé sur l'algorithme de distance de Levenshtein.\"},\"type\":\"paragraph\"},{\"data\":{\"text\":\"En JavaScript, cela ressemblerait à ceci :\"},\"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 (correspondance de préfixe et index Lucene)\",\"level\":3},\"type\":\"header\"},{\"data\":{\"text\":\"La deuxième possibilité est l'infixe, qui est basé sur la correspondance de préfixe avec des jetons dans le texte indexé. Il utilise l'index Lucene pour son dictionnaire. Lucene est une bibliothèque de recherche en texte intégral (Apache Software Foundation) qui contient des bibliothèques de programmation open source.\"},\"type\":\"paragraph\"},{\"data\":{\"text\":\"En pratique, il s'agit d'une structure indexée qui crée des jetons pendant le traitement. Les espaces peuvent marquer la fin ou le début d'une chaîne. Les chaînes individuelles sont normalisées pour de meilleures correspondances — par exemple, la conversion des majuscules en minuscules — et plusieurs variantes connexes du dictionnaire sont également indexées.\"},\"type\":\"paragraph\"},{\"data\":{\"text\":\"L'avantage réside dans les options qui peuvent être définies dans la requête, ce qui offre une plus grande flexibilité.\"},\"type\":\"paragraph\"},{\"data\":{\"text\":\"Que font les moteurs de recherche commerciaux ?\",\"level\":3},\"type\":\"header\"},{\"data\":{\"text\":\"Une combinaison des deux approches est essentiellement ce que proposent la plupart des moteurs de recherche. Lors de la saisie dans le champ de recherche, des chaînes individuelles sont suggérées dans le contexte d'autres chaînes et termes. Il en résulte une recherche sémantique.\"},\"type\":\"paragraph\"},{\"data\":{\"text\":\"Pour les grands fournisseurs de recherche, ces résultats sont ajustés commercialement et dirigent les utilisateurs vers des index prioritaires. Les pages sont triées et catégorisées via des règles et des directives. Les groupes d'intérêt sont déterminés via des technologies de suivi, des algorithmes d'IA et du marketing de base de données, et la recherche est adaptée au groupe cible.\"},\"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},"Description du projet",2,{"data":235,"type":237},{"text":236},"Pour une recherche efficace sur un site web, il est important que les utilisateurs trouvent rapidement et facilement les résultats appropriés. Solr Fuzzy Suggester et Solr Infix Suggester offrent une solution efficace à cet égard. Ils peuvent être appelés et filtrés via des requêtes Ajax.","paragraph",{"data":239,"type":237},{"text":240},"Le suggester est activé via le composant XML SuggestComponent dans le fichier solrconfig.xml, comme illustré dans l'exemple de code suivant :",{"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},"En utilisant Solr Fuzzy Suggester et Solr Infix Suggester, les utilisateurs peuvent obtenir rapidement et facilement des résultats pertinents, car ils bénéficient de suggestions et de fonctionnalités d'auto-complétion. Les résultats de la requête peuvent ensuite être filtrés pour garantir que seuls les résultats les plus pertinents sont affichés.",{"data":249,"type":237},{"text":250},"En mettant en œuvre ces technologies, les sites web peuvent offrir une fonctionnalité de recherche améliorée et une meilleure expérience utilisateur.",{"data":252,"type":42},{"text":253,"level":254},"Exemple de configuration (Coloration syntaxique)",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},"L'image montre ce que fait le suggester : l'entrée ne donne pas de correspondance exacte, et le Solr Suggester renvoie des suggestions similaires. Il existe plusieurs façons de déterminer la similarité des chaînes de caractères. J'en mentionnerai deux ici.",{"data":262,"type":42},{"text":263,"level":254},"1) Fuzzy (distance de Levenshtein)",{"data":265,"type":237},{"text":266},"La première possibilité est le fuzzy (flou), qui est basé sur l'algorithme de distance de Levenshtein.",{"data":268,"type":237},{"text":269},"En JavaScript, cela ressemblerait à ceci :",{"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 (correspondance de préfixe et index Lucene)",{"data":277,"type":237},{"text":278},"La deuxième possibilité est l'infixe, qui est basé sur la correspondance de préfixe avec des jetons dans le texte indexé. Il utilise l'index Lucene pour son dictionnaire. Lucene est une bibliothèque de recherche en texte intégral (Apache Software Foundation) qui contient des bibliothèques de programmation open source.",{"data":280,"type":237},{"text":281},"En pratique, il s'agit d'une structure indexée qui crée des jetons pendant le traitement. Les espaces peuvent marquer la fin ou le début d'une chaîne. Les chaînes individuelles sont normalisées pour de meilleures correspondances — par exemple, la conversion des majuscules en minuscules — et plusieurs variantes connexes du dictionnaire sont également indexées.",{"data":283,"type":237},{"text":284},"L'avantage réside dans les options qui peuvent être définies dans la requête, ce qui offre une plus grande flexibilité.",{"data":286,"type":42},{"text":287,"level":254},"Que font les moteurs de recherche commerciaux ?",{"data":289,"type":237},{"text":290},"Une combinaison des deux approches est essentiellement ce que proposent la plupart des moteurs de recherche. Lors de la saisie dans le champ de recherche, des chaînes individuelles sont suggérées dans le contexte d'autres chaînes et termes. Il en résulte une recherche sémantique.",{"data":292,"type":237},{"text":293},"Pour les grands fournisseurs de recherche, ces résultats sont ajustés commercialement et dirigent les utilisateurs vers des index prioritaires. Les pages sont triées et catégorisées via des règles et des directives. Les groupes d'intérêt sont déterminés via des technologies de suivi, des algorithmes d'IA et du marketing de base de données, et la recherche est adaptée au groupe cible.","2.30.0","Pour une recherche efficace sur un site web, il est important que les utilisateurs trouvent rapidement et facilement des résultats pertinents. Solr Fuzzy Suggester et Solr Infix Suggester offrent une solution efficace à cela. Ils peuvent être appelés et filtrés via des requêtes 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,439,446,453,460,467,474,481,487,494,500],{"id":427,"slug":428,"title":429,"excerpt":430,"featuredImage":431,"publishedAt":432},"18","local-roots-global-reach-communication-media-systems-for-modern-business","Racines locales, portée mondiale — Systèmes de communication & de médias pour l'entreprise moderne","J'aide les entreprises locales à s'afficher comme des marques mondiales : un positionnement clair, du contenu à haut rendement et une distribution qui transforme l'attention en prospects.","\u002Fuploads\u002F2026\u002F02\u002Flocal-roots-global-reach-communication-media-systems-for-modern-business-1771251472163-5ujsqm.webp","2026-02-16T02:13:00.000Z",{"id":311,"slug":434,"title":435,"excerpt":436,"featuredImage":437,"publishedAt":438},"nuxtwo-theme-showcase","Plateforme de production de classe entreprise","Plateforme CMS et de portail de niveau entreprise avec architecture multi-bases de données, véritable multilinguisme et migration WordPress professionnelle. Conçue pour des systèmes de publication évolutifs, sécurisés et pérennes.","\u002Fuploads\u002F2025\u002F01\u002Fhow-to-scan-and-clean-your-cloud-linux-server-from-malware-large.webp","2025-10-31T05:31:00.000Z",{"id":440,"slug":441,"title":442,"excerpt":443,"featuredImage":444,"publishedAt":445},"21","presence-platforms-enterprise-communication-that-wins-without-competing","Plateformes de Présence — Communication d'entreprise qui gagne sans rivaliser","Une Presence Platform transforme les opérations en une clarté de niveau décisionnel : des affirmations gouvernées, des formats reproductibles, un maillage interne qui oriente les décisions, et une boucle d'apprentissage hebdomadaire qui démultiplie la confiance et le pipeline.","\u002Fuploads\u002F2026\u002F02\u002Fpresence-platforms-enterprise-communication-that-wins-without-competing-1771263312197-h9p74p.webp","2026-02-16T14:01:00.000Z",{"id":447,"slug":448,"title":449,"excerpt":450,"featuredImage":451,"publishedAt":452},"23","source-of-truth-enterprise-intelligence-platform","Plateforme d'intelligence d'entreprise Source of Truth","Une plateforme d'intelligence d'entreprise auto-hébergée et gouvernée par les preuves qui transforme les connaissances internes de l'entreprise, les documents et les données commerciales en intelligence traçable pour la recherche, les décisions, la surveillance et l'exécution contrôlée de l'IA.","\u002Fuploads\u002F2026\u002F10\u002Fsource-of-truth-enterprise-intelligence-platform-1791975594140-vygojf.webp","2026-10-14T06:27:00.000Z",{"id":454,"slug":455,"title":456,"excerpt":457,"featuredImage":458,"publishedAt":459},"17","integration-von-gpt-4-mit-libreoffice-auf-ubuntu-eine-vollstaendige-anleitung","LibreOffice ChatGPT Intégration de macro Étude de cas","Explorez l'intégration de macro Python OpenAI personnalisée pour ChatGPT dans LibreOffice, optimisant les flux de travail avec l'assistance de l'IA directement dans vos documents.","\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":461,"slug":462,"title":463,"excerpt":464,"featuredImage":465,"publishedAt":466},"22","from-raw-data-to-verifiable-ai-context-a-practical-architecture-for-agent-ready-information","Des données brutes au contexte d’IA vérifiable : une architecture pratique pour une information prête pour les agents","Les systèmes d’IA ne défaillent pas principalement parce qu’ils manquent de plus de texte. Ils défaillent parce que l’identité, la provenance, les conflits, les inconnues et la validité sont souvent absents du contexte qu’ils reçoivent. Cet article documente une architecture pratique permettant de transformer des données métier hétérogènes en objets d’information contrôlés et réutilisables pour les humains, les applications et les agents.","\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":468,"slug":469,"title":470,"excerpt":471,"featuredImage":472,"publishedAt":473},"14","digitalisierungsportal-archiv-museum-bibliothek-ead-lido-mets-mods","Portail de numérisation pour Archives Musée Bibliothèque","Le Deutsche Museum Digital se consacre à la numérisation et à l'exploitation scientifique des collections de l'ensemble des objets, du fonds archivistique ainsi que de la bibliothèque du Deutsches Museum.","\u002Fuploads\u002F2019\u002F04\u002F2019-11-21_101547_digital.deutsches-museum.de_-1.webp","2025-10-30T11:36:00.000Z",{"id":475,"slug":476,"title":477,"excerpt":478,"featuredImage":479,"publishedAt":480},"19","from-global-business-to-the-kitchen-a-reverse-communication-system-that-still-scales","Du commerce mondial à la cuisine — Un système de communication inversé qui reste évolutif","Arrêtez de passer à l'échelle en fonction du bruit. Commencez par des signaux globaux, réduisez-les à quelques vérités stables, et transformez-les en modèles hebdomadaires, checklists et « menus » reproductibles qui apportent une valeur réelle.","\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":482,"slug":483,"title":484,"excerpt":485,"featuredImage":486,"publishedAt":473},"12","seo-sem-branding-mobile-webseite-muenchen","SEO Application Web Mobile Munich","SEO pour les applications web mobiles à Munich : indexation propre, Analytics, sitemaps structurés et optimisation Google Actualités comme base solide pour une visibilité durable.","\u002Fuploads\u002F2014\u002F09\u002FSEO-Mobile-Webapplikation-Muenchen-www.stajic.de_4.webp",{"id":488,"slug":489,"title":490,"excerpt":491,"featuredImage":492,"publishedAt":493},"11","from-vision-to-value-maximizing-pos-roi-through-consistent-ci-creation-and-strategic-branding","De la vision à la valeur : Maximiser le ROI des points de vente grâce à une création d'identité visuelle cohérente et un branding stratégique","Dans le commerce de détail moderne, combler l'écart entre la vision créative et la valeur financière nécessite d'aligner l'identité d'entreprise (CI) avec le point de vente (POS). Cette étude de cas explore le cadre permettant d'éliminer la friction cognitive afin d'améliorer le 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":495,"slug":496,"title":497,"excerpt":10,"featuredImage":498,"publishedAt":499},"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":501,"slug":502,"title":503,"excerpt":504,"featuredImage":505,"publishedAt":506},"20","from-global-business-to-the-kitchen-enterprise-media-os-that-scales-calmly-stajic-de-showcase-portals","Du business mondial à la cuisine — OS média d'entreprise qui passe à l'échelle sereinement (stajic.de + Showcase Portals)","Une stratégie globale ne fonctionne que si elle survit à la cuisine : contraintes, cadence, clarté et résultats mesurables. Voici comment un Enterprise Media OS transforme le bruit du marché en systèmes reproductibles — avec figure.rocks et loving.rocks comme implémentations de démonstration.","\u002Fuploads\u002F2026\u002F02\u002Ffrom-global-business-to-the-kitchen-enterprise-media-os-that-scales-calmly-stajic-de-showcase-portals-1771252973332-rpajor.webp","2026-02-16T02:39:00.000Z","fallback",[],[]]