[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"portal-settings:stajic:es":3,"public-menus:all":38,"$f3skp2blyau5su":221,"related:portfolio:solr-fuzzy-suggester-und-solr-infix-suggester-abfrage-ueber-ajax-und-filterung:es:1":425},{"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","es","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":424},{"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 y Solr Infix Suggester a través de Ajax","solr-fuzzy-suggester-und-solr-infix-suggester-abfrage-ueber-ajax-und-filterung","{\"time\":1766400020000,\"blocks\":[{\"data\":{\"text\":\"Descripción del proyecto\",\"level\":2},\"type\":\"header\"},{\"data\":{\"text\":\"Para una búsqueda eficiente en un sitio web, es importante que los usuarios encuentren resultados relevantes de forma rápida y sencilla. Solr Fuzzy Suggester y Solr Infix Suggester ofrecen una solución eficaz para esto. Se pueden invocar y filtrar mediante consultas Ajax.\"},\"type\":\"paragraph\"},{\"data\":{\"text\":\"La activación del suggester se realiza a través del componente XML SuggestComponent en el archivo solrconfig.xml, como se muestra en el siguiente ejemplo de código:\"},\"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\":\"Al utilizar Solr Fuzzy Suggester y Solr Infix Suggester, los usuarios pueden obtener resultados relevantes de forma rápida y sencilla, ya que reciben sugerencias y funciones de autocompletado. Los resultados de la consulta se pueden filtrar posteriormente para garantizar que solo se muestren los resultados más relevantes.\"},\"type\":\"paragraph\"},{\"data\":{\"text\":\"Mediante la implementación de estas tecnologías, los sitios web pueden ofrecer una funcionalidad de búsqueda mejorada y una mejor experiencia de usuario.\"},\"type\":\"paragraph\"},{\"data\":{\"text\":\"Ejemplo de configuración (Resaltador de sintaxis)\",\"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\":\"La imagen muestra lo que hace el suggester: la entrada no produce una coincidencia exacta, y Solr Suggester devuelve sugerencias similares. Hay varias formas de determinar la similitud de cadenas (string). Aquí mencionaré dos.\"},\"type\":\"paragraph\"},{\"data\":{\"text\":\"1) Fuzzy (Distancia de Levenshtein)\",\"level\":3},\"type\":\"header\"},{\"data\":{\"text\":\"La primera posibilidad es fuzzy, que se basa en el algoritmo de la distancia de Levenshtein (Levenshtein distance).\"},\"type\":\"paragraph\"},{\"data\":{\"text\":\"En JavaScript, se vería así:\"},\"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 y b son cadenas (strings)\"},\"type\":\"code\"},{\"data\":{\"text\":\"2) Infix (coincidencias de prefijo e índice Lucene)\",\"level\":3},\"type\":\"header\"},{\"data\":{\"text\":\"La segunda posibilidad es infix, que se basa en coincidencias de prefijo con tokens en el texto indexado. Utiliza el índice Lucene para su diccionario. Lucene es una biblioteca de búsqueda de texto completo (Apache Software Foundation) que contiene bibliotecas de software de código abierto.\"},\"type\":\"paragraph\"},{\"data\":{\"text\":\"En la práctica, es una estructura indexada que crea tokens durante el procesamiento. Los espacios pueden indicar el final o el comienzo de una cadena. Las cadenas individuales se normalizan para obtener mejores coincidencias — por ejemplo, convertir mayúsculas a minúsculas — y se indexan múltiples variantes relacionadas del diccionario.\"},\"type\":\"paragraph\"},{\"data\":{\"text\":\"La ventaja radica en las opciones que se pueden definir en la consulta (query), lo que proporciona mayor flexibilidad.\"},\"type\":\"paragraph\"},{\"data\":{\"text\":\"¿Qué hacen los motores de búsqueda comerciales?\",\"level\":3},\"type\":\"header\"},{\"data\":{\"text\":\"La combinación de ambos enfoques es esencialmente lo que ofrecen la mayoría de los motores de búsqueda. Al ingresar datos en el campo de búsqueda, se sugieren cadenas individuales en el contexto de otras cadenas y términos. Así se logra una búsqueda semántica.\"},\"type\":\"paragraph\"},{\"data\":{\"text\":\"En los grandes proveedores de búsqueda, estos resultados están configurados comercialmente y dirigen a los usuarios a índices prioritarios. Las páginas se ordenan y categorizan mediante reglas y directrices. Los grupos de interés se determinan a través de tecnologías de seguimiento (tracking), algoritmos de IA y marketing de bases de datos (database marketing), y la búsqueda se adapta al grupo objetivo.\"},\"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},"Descripción del proyecto",2,{"data":235,"type":237},{"text":236},"Para una búsqueda eficiente en un sitio web, es importante que los usuarios encuentren resultados relevantes de forma rápida y sencilla. Solr Fuzzy Suggester y Solr Infix Suggester ofrecen una solución eficaz para esto. Se pueden invocar y filtrar mediante consultas Ajax.","paragraph",{"data":239,"type":237},{"text":240},"La activación del suggester se realiza a través del componente XML SuggestComponent en el archivo solrconfig.xml, como se muestra en el siguiente ejemplo de código:",{"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},"Al utilizar Solr Fuzzy Suggester y Solr Infix Suggester, los usuarios pueden obtener resultados relevantes de forma rápida y sencilla, ya que reciben sugerencias y funciones de autocompletado. Los resultados de la consulta se pueden filtrar posteriormente para garantizar que solo se muestren los resultados más relevantes.",{"data":249,"type":237},{"text":250},"Mediante la implementación de estas tecnologías, los sitios web pueden ofrecer una funcionalidad de búsqueda mejorada y una mejor experiencia de usuario.",{"data":252,"type":42},{"text":253,"level":254},"Ejemplo de configuración (Resaltador de sintaxis)",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},"La imagen muestra lo que hace el suggester: la entrada no produce una coincidencia exacta, y Solr Suggester devuelve sugerencias similares. Hay varias formas de determinar la similitud de cadenas (string). Aquí mencionaré dos.",{"data":262,"type":42},{"text":263,"level":254},"1) Fuzzy (Distancia de Levenshtein)",{"data":265,"type":237},{"text":266},"La primera posibilidad es fuzzy, que se basa en el algoritmo de la distancia de Levenshtein (Levenshtein distance).",{"data":268,"type":237},{"text":269},"En JavaScript, se vería así:",{"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 y b son cadenas (strings)",{"data":274,"type":42},{"text":275,"level":254},"2) Infix (coincidencias de prefijo e índice Lucene)",{"data":277,"type":237},{"text":278},"La segunda posibilidad es infix, que se basa en coincidencias de prefijo con tokens en el texto indexado. Utiliza el índice Lucene para su diccionario. Lucene es una biblioteca de búsqueda de texto completo (Apache Software Foundation) que contiene bibliotecas de software de código abierto.",{"data":280,"type":237},{"text":281},"En la práctica, es una estructura indexada que crea tokens durante el procesamiento. Los espacios pueden indicar el final o el comienzo de una cadena. Las cadenas individuales se normalizan para obtener mejores coincidencias — por ejemplo, convertir mayúsculas a minúsculas — y se indexan múltiples variantes relacionadas del diccionario.",{"data":283,"type":237},{"text":284},"La ventaja radica en las opciones que se pueden definir en la consulta (query), lo que proporciona mayor flexibilidad.",{"data":286,"type":42},{"text":287,"level":254},"¿Qué hacen los motores de búsqueda comerciales?",{"data":289,"type":237},{"text":290},"La combinación de ambos enfoques es esencialmente lo que ofrecen la mayoría de los motores de búsqueda. Al ingresar datos en el campo de búsqueda, se sugieren cadenas individuales en el contexto de otras cadenas y términos. Así se logra una búsqueda semántica.",{"data":292,"type":237},{"text":293},"En los grandes proveedores de búsqueda, estos resultados están configurados comercialmente y dirigen a los usuarios a índices prioritarios. Las páginas se ordenan y categorizan mediante reglas y directrices. Los grupos de interés se determinan a través de tecnologías de seguimiento (tracking), algoritmos de IA y marketing de bases de datos (database marketing), y la búsqueda se adapta al grupo objetivo.","2.30.0","Para una búsqueda eficiente en el sitio web, es importante que los usuarios encuentren los resultados relevantes de forma rápida y sencilla. Solr Fuzzy Suggester y Solr Infix Suggester ofrecen una solución eficiente para esto. Se pueden invocar y filtrar a través de consultas 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,381],{"lang":317,"title":318,"content":319,"contentJson":320,"excerpt":380},"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,359,362,365,368,371,374,377],{"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":358},"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":360,"type":42},{"text":361,"level":254},"2) Infix (prefix matching and Lucene index)",{"data":363,"type":237},{"text":364},"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":366,"type":237},{"text":367},"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":369,"type":237},{"text":370},"The advantage lies in the options that can be defined in the query, which provides greater flexibility.",{"data":372,"type":42},{"text":373,"level":254},"What do commercial search engines do?",{"data":375,"type":237},{"text":376},"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":378,"type":237},{"text":379},"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":382,"excerpt":295},{"time":228,"blocks":383,"version":294},[384,386,388,390,392,394,396,398,400,402,404,406,408,410,412,414,416,418,420,422],{"data":385,"type":42},{"text":232,"level":233},{"data":387,"type":237},{"text":236},{"data":389,"type":237},{"text":240},{"data":391,"type":244},{"code":243},{"data":393,"type":237},{"text":247},{"data":395,"type":237},{"text":250},{"data":397,"type":42},{"text":253,"level":254},{"data":399,"type":244},{"code":257},{"data":401,"type":237},{"text":260},{"data":403,"type":42},{"text":263,"level":254},{"data":405,"type":237},{"text":266},{"data":407,"type":237},{"text":269},{"data":409,"type":244},{"code":272},{"data":411,"type":42},{"text":275,"level":254},{"data":413,"type":237},{"text":278},{"data":415,"type":237},{"text":281},{"data":417,"type":237},{"text":284},{"data":419,"type":42},{"text":287,"level":254},{"data":421,"type":237},{"text":290},{"data":423,"type":237},{"text":293},"Portfolio erfolgreich abgerufen",{"items":426,"source":508,"manualIds":509,"manualMatchedIds":510},[427,434,441,448,455,462,469,475,481,488,495,502],{"id":428,"slug":429,"title":430,"excerpt":431,"featuredImage":432,"publishedAt":433},"19","from-global-business-to-the-kitchen-a-reverse-communication-system-that-still-scales","De los negocios globales a la cocina — Un sistema de comunicación inversa que aún escala","Deja de escalar por el ruido. Empieza con señales globales, redúcelas a unas pocas verdades estables y conviértelas en plantillas semanales, listas de verificación y “menús” repetibles que entreguen valor real.","\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":435,"slug":436,"title":437,"excerpt":438,"featuredImage":439,"publishedAt":440},"20","from-global-business-to-the-kitchen-enterprise-media-os-that-scales-calmly-stajic-de-showcase-portals","De los negocios globales a la cocina — SO de medios empresariales que escala con calma (stajic.de + Portales de showcase)","La estrategia global solo funciona si sobrevive a la cocina: restricciones, cadencia, claridad y resultados medibles. Así es como un Enterprise Media OS convierte el ruido del mercado en sistemas repetibles — con figure.rocks y loving.rocks como implementaciones de muestra.","\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",{"id":442,"slug":443,"title":444,"excerpt":445,"featuredImage":446,"publishedAt":447},"12","seo-sem-branding-mobile-webseite-muenchen","SEO Aplicación web móvil Múnich","SEO para aplicaciones web móviles en Múnich: indexación limpia, analíticas, sitemaps estructurados y optimización para Google Noticias como una base sólida para una visibilidad sostenible.","\u002Fuploads\u002F2014\u002F09\u002FSEO-Mobile-Webapplikation-Muenchen-www.stajic.de_4.webp","2025-10-30T11:36:00.000Z",{"id":449,"slug":450,"title":451,"excerpt":452,"featuredImage":453,"publishedAt":454},"18","local-roots-global-reach-communication-media-systems-for-modern-business","Raíces locales, alcance global — Sistemas de comunicación y medios para los negocios modernos","Ayudo a los negocios locales a presentarse como marcas globales: posicionamiento claro, contenido de alto rendimiento y una distribución que convierte la atención en leads.","\u002Fuploads\u002F2026\u002F02\u002Flocal-roots-global-reach-communication-media-systems-for-modern-business-1771251472163-5ujsqm.webp","2026-02-16T02:13:00.000Z",{"id":456,"slug":457,"title":458,"excerpt":459,"featuredImage":460,"publishedAt":461},"11","from-vision-to-value-maximizing-pos-roi-through-consistent-ci-creation-and-strategic-branding","De la visión al valor: Maximizando el ROI del POS mediante la creación de una CI coherente y el branding estratégico","En el retail moderno, cerrar la brecha entre la visión creativa y el valor financiero requiere alinear la Identidad Corporativa (CI) con el Punto de Venta (POS). Este estudio de caso explora el marco de trabajo para eliminar la fricción cognitiva para mejorar el 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":463,"slug":464,"title":465,"excerpt":466,"featuredImage":467,"publishedAt":468},"17","integration-von-gpt-4-mit-libreoffice-auf-ubuntu-eine-vollstaendige-anleitung","Estudio de caso de integración de macros de LibreOffice ChatGPT","Explora la integración de macro personalizada de Python OpenAI para ChatGPT en LibreOffice, mejorando los flujos de trabajo con asistencia de IA directamente en tus documentos.","\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":311,"slug":470,"title":471,"excerpt":472,"featuredImage":473,"publishedAt":474},"nuxtwo-theme-showcase","Plataforma de producción de nivel empresarial","Plataforma CMS y de portal de nivel empresarial con arquitectura multidatabase, verdadero multilingüismo y migración profesional de WordPress. Desarrollado para sistemas de publicación escalables, seguros y a prueba de futuro.","\u002Fuploads\u002F2025\u002F01\u002Fhow-to-scan-and-clean-your-cloud-linux-server-from-malware-large.webp","2025-10-31T05:31:00.000Z",{"id":476,"slug":477,"title":478,"excerpt":479,"featuredImage":480,"publishedAt":447},"14","digitalisierungsportal-archiv-museum-bibliothek-ead-lido-mets-mods","Portal de digitalización para Archivo Museo Biblioteca","El Deutsche Museum Digital se dedica a la digitalización y apertura científica de los fondos de la colección de objetos, el archivo y la biblioteca del Deutsches Museum.","\u002Fuploads\u002F2019\u002F04\u002F2019-11-21_101547_digital.deutsches-museum.de_-1.webp",{"id":482,"slug":483,"title":484,"excerpt":485,"featuredImage":486,"publishedAt":487},"21","presence-platforms-enterprise-communication-that-wins-without-competing","Plataformas de Presencia — Comunicación empresarial que gana sin competir","Una Plataforma de Presencia convierte las operaciones en claridad de nivel de decisión: afirmaciones gobernadas, formatos repetibles, enlaces internos que enrutan decisiones y un bucle de aprendizaje semanal que potencia la confianza y el pipeline.","\u002Fuploads\u002F2026\u002F02\u002Fpresence-platforms-enterprise-communication-that-wins-without-competing-1771263312197-h9p74p.webp","2026-02-16T14:01:00.000Z",{"id":489,"slug":490,"title":491,"excerpt":492,"featuredImage":493,"publishedAt":494},"13","mobile-app-creation-with-apache-cordova-cross-platform-case-study","Creación de aplicaciones móviles con Apache Cordova: Estudio de caso multiplataforma","Explora cómo Apache Cordova transforma aplicaciones web en soluciones móviles multiplataforma para Android, iOS y más, con un proceso detallado, pila tecnológica y beneficios.","\u002Fuploads\u002F2018\u002F01\u002FApache-Ubuntu-Install-Certbot_stajic_de_Suchmaschinen_Webcrawler_Suchergebnissen.webp","2025-10-30T12:36:00.000Z",{"id":496,"slug":497,"title":498,"excerpt":499,"featuredImage":500,"publishedAt":501},"22","from-raw-data-to-verifiable-ai-context-a-practical-architecture-for-agent-ready-information","De datos brutos a contexto de IA verificable: una arquitectura práctica para información lista para agentes","Los sistemas de IA no fallan principalmente porque les falte más texto. Fallan porque la identidad, la procedencia, los conflictos, los desconocidos y la validez a menudo faltan en el contexto que reciben. Este artículo documenta una arquitectura práctica para convertir datos empresariales heterogéneos en objetos de información controlados y reutilizables para humanos, aplicaciones y agentes.","\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":503,"slug":504,"title":505,"excerpt":10,"featuredImage":506,"publishedAt":507},"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","fallback",[],[]]