The Vardot Team: How to Implement Semantic Search in Drupal

Semantic search represent a shift in how content is discovered on websites. Unlike traditional keyword-based search, which relies on exact matches or simple string comparisons, semantic search leverages artificial intelligence (AI), machine learning (ML), and vector embeddings to understand the context and intent of user query, even when the query includes synonyms or typos.

Drupal AI Initiative: Seven Essential Drupal AI Sessions You Should Not Miss at DrupalCon Vienna

Discover how Drupal applies AI and how it could play an active role in your AI stack at DrupalCon Vienna.

The Drupal community recently announced the Drupal AI Initiative, which focuses on enhancing existing AI capabilities in an ethical, transparent, and flexible manner. Several companies have joined the initiative, altogether contributing over $600,000 in funding and personnel salary at this time. And the team continues to expand! This has long been in the making, so of course we've added strategic programming to DrupalCon Vienna to get you up to speed.

While many valuable AI sessions are available, seven sessions from the AI makers themselves are particularly noteworthy. It’s remarkable that all these sessions are included in a standard DrupalCon ticket!

  1. For a comprehensive overview of the initiative, its strategy, and user benefits, consider the AI strategy and application session by Christoph Breidert and Frederik Wouters.

  2. For a hands-on experience with AI content generation, AI workflows, agents, and Retrieval-Augmented Generation, Christoph and Frederik will also host a nearly two-hour workshop for live practical application.

  3. Individuals interested in delving deeper into AI agents, but without coding experience, will find a dedicated session by Marcus Johansson, the architect behind them, titled "Building AI Agents without coding".

  4. You have the AI building blocks, but how will those work together in a workflow? Jasper Lammens covers this using Drupal's ECA module for configuration and even relying on Drupal's support for the AI Model Context Protocol. This session will demonstrate the use of AI for chat, text-to-speech, and more.

  5. Despite all of these capabilities, what if the AI Agent you need is not available? Vincenzo Gambino will guide developers on creating new AI Agents, Tools, and Assistants from scratch using the ai_agents module. This workshop will focus on designing intelligent features that respond to users, providing attendees with practical skills and working code.

  6. For situations where an AI-made site configuration change did not yield the desired results, Fabian Bircher will present a session on various approaches to undo, including the new Config Checkpoint UI module.

  7. Last, but definitely not least, Experience Builder's first stable release is expected at DrupalCon Vienna! The AI integration being built will provide easy ways to create pages and refine content. James Abrahams says the AI Agent Swarm is coming to Experience Builder and nothing in Drupal will ever be the same again

Sessions are not the only reason to come to DrupalCon. The Drupal AI funding companies are among the event's sponsors, so you can talk to each at their booths. The AI team will also be in the contribution room collaborating on improvements, and will hold targeted discussions in Birds of a Feather (BoF) sessions that will show up on the live schedule later.

DrupalCon Vienna is the place to immerse yourself in the latest Drupal AI developments and be part of what is coming next! Regular ticket prices are only available until the end of September, so buy your tickets now!

Joachim's blog: Drupal on cPanel: Confusion, Pain, and Never-Ending Lousiness

Drupal on cPanel: Confusion, Pain, and Never-Ending Lousiness

My site is back up, after a brief interlude: I moved hosts, because Gandi doubled their hosting costs. I'd left it quite late to renew, because up until now it's just been a case of ticking a box and paying money, so I didn't have much time to shop around.

I chose Krystal, because they use green energy and their procedure for transferring my domain seemed simple (there was a German hosting firm I was recommended too, but that one said something about filling in a form in a PDF and it looked horrendous).

I was warned about their use of cPanel, but I went ahead anyway, and now I can say that yes, the warning was justified.

CPanel is a mish-mash of different things, none of which join up properly. So for instance, it has a feature for creating git repositories on the server and using them to deploy your code, but that bit doesn't tell you to set up ssh keys first. You have to know. Then on the git repository management page, the URL for cloning the repository is wrong. When I opened a support ticket, I got a quick response with the correct URL, but when I suggested the information in cPanel could be fixed, I was told that the URL it shows can't be changed.

It's like someone took a wheelbarrow full of random tools and tipped it all out in front of you. Nothing works together, nothing is co-ordinated.

One of them is Softaculous, a tool which promises to install any of a bunch of web apps. I tried getting it to install Drupal before I copied over my own codebase, just in case it knew some things I didn't. It installed it with the legacy folder structure: Drupal in the project root, rather than in a /web folder. I know that technically works, but I didn't feel like totally restructuring my codebase for that.

So the first real Drupal problem was the web root. It was set up as /public_html, and the documentation for git deployment said it would deploy into that folder. I opened a support ticket to ask about changing the web root to /public_html/web, for Drupal's folder structure, and I was told that it was impossible on my cheap hosting plan; get a VPS they said. But that's overkill for this site, which gets very little traffic.

That left me with two options: restructure my codebase to follow the legacy Drupal code structure, with the web root in the project root, or add some sort of redirect. The latter is fairly easy to do with an .htaccess file in the project root, once you know how. I found this in an old forum post:

# Redirect to the actual webroot. # Because cpanel is crap. # @see https://www.drupal.org/hosting-support/2021-09-21/unable-to-set-document-root-as-public_htmlweb RewriteEngine on RewriteCond %{HTTP_HOST} ^(www.)?noreiko.com$ RewriteCond %{REQUEST_URI} !^/www/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /www/$1 RewriteCond %{HTTP_HOST} ^(www.)?noreiko.com$ RewriteRule ^(/)?$ www/index.html [L]

That worked with a simple test of a plain HTML page, and so I deployed my site. Hurrah! Except no: form submissions weren't working: submitting a form took me to an error page complaining about the redirect being external.

Fortunately, once again I found a fix, this time in a core issue. This code goes in a settings.php file. In my case, I put it in a settings.prod.php file, since I don't need it to run on my local development copy of the site.

// Needed for cPanel crapness. // See https://www.drupal.org/project/drupal/issues/2612160#comment-11767977 if (isset($GLOBALS['request']) && '/htdocs/index.php' === $GLOBALS['request']->server->get('SCRIPT_NAME')) { $GLOBALS['request']->server->set('SCRIPT_NAME', '/index.php'); } elseif (isset($GLOBALS['request']) && '/htdocs/update.php' === $GLOBALS['request']->server->get('SCRIPT_NAME')) { $GLOBALS['request']->server->set('SCRIPT_NAME', '/update.php'); }

The same fix needs to be done for update.php as well. There's probably a neat way to cover both cases in one go, and also any other PHP entry points (though I think statistics.php is gone?) but I'd run out of energy by then.

Drupal runs fine in a subfolder on my laptop, where I still use MAMP and run each local site in its on own folder in the web root. (Although Tome, the Drupal static site generator doesn't handle that properly, which is why I abandoned the idea of moving my site to github pages). So it's probably something caused by the Apache redirect I'd put it; but once I got it working I didn't experiment further.

So, my site is up and running again, as you can see.

But no thanks to the proprietary software that runs the hosting.

joachim Wed, 27/08/2025 - 20:18

Tags

Talking Drupal: TD Cafe #009 - John Picozzi & Chris Wells

Join John and Chris for an engaging conversation as they dive into the latest developments in Drupal CMS, including the analytics recipe installation and upcoming features for Project Browser. They also discuss the challenges and strategies of thriving with ADHD, the impact of AI in web development, and personal stories from summer activities to travel plans.

For show notes visit: https://www.talkingDrupal.com/cafe009

Topics
  • Introduction and Personal Reflections
  • Living in Maine and Childhood Memories
  • Travel Plans and European DrupalCon
  • Project Browser and Technical Discussions
  • AI and Coding Experiences
  • The Future of Drupal and AI Integration
  • Navigating ADHD Diagnosis and Management
  • Conclusion and Final Thoughts
John Picozzi

John Picozzi is the Solutions Architect at EPAM Systems, where he helps organizations implement scalable and sustainable digital solutions—most often using Drupal. With over a decade of experience in web development, John has become a trusted voice in the Drupal community for his commitment to open source, user-centered design, and thoughtful architecture. John is a contributor to Drupal and an active member of the community as the organizer of the Drupal Providence Meetup and New England Drupal Camp. He’s also well known as a co-host of the Talking Drupal podcast, a weekly show focused on all things Drupal, where he interviews community members and shares insights on development, strategy, and community engagement. Outside of podcasting and coding, John frequently speaks at DrupalCamps and conferences across the U.S., offering sessions that span technical deep dives to community and career development topics. You can find more about his work and speaking engagements at picozzi.com, or follow him on Drupal.org

Chris Wells

Chris Wells is a co-founder and CTO of Redfin Solutions, a web development agency specializing in Drupal-based digital experiences. With over two decades of experience in software engineering and web technologies, Chris has led complex projects for higher education, nonprofits, and enterprise clients—bringing strategic vision and technical excellence to every engagement. A passionate advocate for open source, Chris is an active contributor to the Drupal project and a frequent speaker at Drupal camps and conferences. He is known for his leadership in fostering strong client relationships, building sustainable development teams, and promoting best practices in accessibility, performance, and long-term site maintenance.

Guests

John Picozzi - epam.com johnpicozzi Chris Wells - chrisfromredfin www.redfinsolutions.com

The Vardot Team: How to Implement Semantic Search in Drupal

Semantic search represent a shift in how content is discovered on websites. Unlike traditional keyword-based search, which relies on exact matches or simple string comparisons, semantic search leverages artificial intelligence (AI), machine learning (ML), and vector embeddings to understand the context and intent of user query, even when the query includes synonyms or typos.