Architektur-Kapseln von Vid: Aufbau einer hochskalierbaren, standortübergreifenden, föderierten Suche
AI-TranslatedWir freuen uns, Architecture Capsules anzukündigen, eine Originalserie unseres Chief Engagement Officer, Vidhananad. Die prägnante Form dieser Serie basiert ausschließlich auf Erfahrungen, Möglichkeiten und Erkenntnissen und hilft Ihnen, die komplexe Technologie und ihre Architekturen auf fesselnde Weise zu verstehen. Los geht's!
Federated Search ist eine Anwendung, mit der Sie mehrere Sites (einschließlich Drupal) in einer einzigen Suchanwendung indizieren und konsistente Ergebnisse erzielen können.
Laut IDC sind 90 % aller digitalen Informationen unstrukturiert, in mehreren Repositories gespeichert, und digitale Unternehmen haben entweder zu wenig in Technologie investiert oder in minderwertige Technologie, um auf sie zuzugreifen.
Die traditionelle Suchmethode führt hauptsächlich aufgrund des Fehlens von Optimierungspraktiken und eines mangelnden einheitlichen Frameworks zu Fehlern. In einer datengesteuerten Welt ist es wichtiger denn je, die verborgenen Erkenntnisse freizulegen, die in strukturierten und unstrukturierten Daten in mehreren Repositories verborgen sind.
In dieser Folge von Architecture Capsules erfahren wir, wie wir die Website-Sucherfahrung verbessern und im Vergleich zu den traditionellen Suchmaßnahmen eine Mischung aus nützlichen und genauen Ergebnissen mit Federated Search beibehalten können.
Anwendungsfall und Vorteile für Unternehmen
- Benutzer können Inhalte auf mehreren, vom Unternehmen verwalteten Websites suchen
- Verbesserte Inhaltsermittlung
- Verbesserte Benutzerbindung und -interaktion
Anforderungskriterien
- Es sollte sowohl mit Drupal- als auch mit Nicht-Drupal-Sites kompatibel sein.
- Die Suche sollte einfach auf neuen Sites bereitzustellen und plattformunabhängig sein (vielleicht ein Code-Snippet)
- Die Suche sollte schnell sein.
- Die Benutzererfahrung bei der Suche sollte sofort erfolgen (d. h. entkoppelt)
- Sollte eine granulare Steuerung ermöglichen, um bestimmte Inhalte in der Suche hervorzuheben.
- Sollte mehrere strukturierte Inhaltsblöcke wie Veranstaltungen, Artikel, Blogs usw. unterstützen.
Verwendeter Stack
Scrapy, Redis, React, Drupal, Solr/Elastic, PHP/Python, Microservices



Architekturhinweise
- Verwenden Sie Scrapy, um die Sites zu crawlen. Verwenden Sie den Scrapy-Cluster, wenn die Gesamtzahl der Seiten hoch ist. Idealerweise sollte Scrapy auf Autothrottle eingestellt sein.
- Verwenden Sie Queues in Redis, um die Page-Crawl-Queue und den Status zu verwalten.
- Schreiben Sie Parser (in Python/PHP) für die Inhalte, die strukturiert extrahiert werden sollen. Beispiel: Datum, Inhalt, Titel für Veranstaltungen. Stellen Sie sicher, dass Sie einen Standardparser haben, der auf den Textkörper auf der Seite abzielt.
- Senden Sie den Crawled-Pages-Dump an die Pipeline, die einen bestimmten Parser für den Inhaltstyp identifiziert, und verwenden Sie den Standardparser, wenn keiner der Parser anwendbar ist.
- Richten Sie einen Dienst ein, um Scrapy in geplanten Abständen neu zu starten. Verwenden Sie die Signatur des Dumps aus dem vorherigen Crawl und das aktualisierte Datum im Header, um mit der Parser-Pipeline fortzufahren oder sie zu überspringen. Dadurch wird sichergestellt, dass die gesamte Pipeline nur ausgeführt wird, wenn der Inhalt aktualisiert/gelöscht wird.
- Der nächste Schritt in der Pipeline sendet Daten über JSON API / GraphQL an Drupal.
- Richten Sie Solr mit Drupal auf Standard Weise ein. Dies ist im Internet ausführlich dokumentiert.
- Drupal ist für das Hinzufügen/Aktualisieren/Löschen aus dem Solr-Index verantwortlich.
- Erstellen Sie eine JS-App, die mit der Rest-API von Solr interagiert, um Suchvorgänge auszuführen.
- Erstellen Sie ein JS-Code-Snippet, das die App aus dem vorherigen Schritt in einen leeren Container zusammen mit dem erforderlichen Markup und den Stilen lädt.
- Nehmen Sie bei Bedarf standortspezifische Stilanpassungen auf der Endsite vor.
Bingo!
Ich beantworte gerne Ihre Fragen in Kommentaren, per DM oder E-Mail. Kontaktieren Sie mich für eine vollständige Demo oder um Möglichkeiten zu besprechen unter [email protected]
Abonnieren
Related Blogs
Erkunden von Drupal Single Directory Components: Ein Wendepunkt für Entwickler

Webentwicklung lebt von Effizienz und Organisation, und Drupal, unser Lieblings-CMS, ist mit seiner neuesten Funktion hier,…
7 schnelle Schritte zur Erstellung von API-Dokumentationen mit Postman

Wenn Sie mit APIs arbeiten, kennen Sie wahrscheinlich bereits Postman, den beliebten REST Client, dem unzählige Entwickler…
Was ist der Product Engineering Life Cycle?

Stellen Sie sich vor, Sie bauen ein Haus ohne Bauplan oder Konstruktionszeichnungen. Es wäre schwierig, die Kosten und den…