Erzeugen einer Sitemap aus einem Solr-Index

Unsere Kunden fragen oft, ob Solr die Erstellung einer Sitemap aus einem bestehenden Solr-Index unterstützt. Solr verfügt zwar über eine…

Unsere Kunden fragen oft, ob Solr die Erstellung einer Sitemap aus einem bestehenden Solr-Index unterstützt. Solr verfügt zwar über eine Reihe von APIs mit vollem Funktionsumfang, aber diese Schnittstellen sind im Allgemeinen eher darauf ausgerichtet, eine allgemeine Datenverwaltungsplattform für Ihre Anwendung bereitzustellen. Die kurze Antwort lautet also: Nein, Solr verfügt nicht über eine spezielle API für die Erstellung von Sitemaps, RSS-Feeds und so weiter.

Mit ein paar Zeilen Code können Sie jedoch Ihren eigenen Sitemap-Generator erstellen.

Für die Zwecke dieses Artikels habe ich rudimentäre Sitemap-Generatoren in Java, PHP und Python geschrieben. Sie finden jedes dieser Beispiele weiter unten. Sie sind alle ungefähr gleich lang und tun alle so ziemlich das Gleiche:

1) Rufen Sie die Sammlungen-API mit dem Namen der Sammlung auf und rufen Sie die Daten ab.

2) Drehen Sie den Rohinhalt in ein JSON-Objekt um.

3) Iterieren Sie über das Dokument, um die URLs zu extrahieren und sie in die XML-String-Ausgabe zu schreiben.

4) Drucken Sie das Ergebnis aus.

I). Java Sitemap Beispiel

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.Iterator;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;

public class Sitemap {

    public static void main(String[] args) {
        String url = "http://localhost:8983/solr/[MY_COLLECTION_NAME]/select?q=*%3A*&wt=json";
        StringBuffer buf = new StringBuffer();
        try {
            URL solrSite = new URL(url);

            BufferedReader in = new BufferedReader(
                    new InputStreamReader(solrSite.openStream()));

            String inputLine;
            while ((inputLine = in.readLine()) != null) {
                buf.append(inputLine);
            }
            in.close();

            JSONParser parser = new JSONParser();
            JSONObject jsonObject = (JSONObject) parser.parse(buf.toString());
            JSONObject resp = (JSONObject) jsonObject.get("response");
            JSONArray docs = (JSONArray) resp.get("docs");
            Iterator<JSONObject> iter = docs.iterator();
            JSONObject doc;
            buf = new StringBuffer();
            buf.append("<?xml version="1.0" encoding="UTF-8"?>");

            buf.append("<urlset ;

    $docs = $json["response"]["docs"];
    
    foreach($docs as $key=>$doc){
       
        $output .= "<url>";
        $output .= "<loc>" . $doc["id"] . "</loc>";
        $output .= "</url>";
        
        
    }
   
   $output .= "</urlset>";
   
   
   
   echo $output;

?>

III). Python Sitemap Beispiel

#!/usr/bin/env python2
#encoding: UTF-8
import urllib
import json

if __name__ == "__main__"
   link = "http://localhost:8983/solr/[MY_COLLECTION_NAME]/select?q=*%3A*&wt=json"
   f = urllib.urlopen(link)
   myfile = f.read()
   stdout = "<?xml version="1.0" encoding="UTF-8"?><urlset  + url["id"] + " </loc></url>";
       
      
   stdout += "</urlset>"
   print stdout

Hinweis: In den obigen Beispielen gebe ich einfach das Ergebnis aus. Für Ihre Implementierung möchten Sie die Ausgabe in das Stammverzeichnis Ihrer Website schreiben. Diese Aufgabe lässt sich mit einem einfachen Cron-Job automatisieren. Hier finden Sie eine schöne Anleitung zum Erstellen von Cron-Jobs. Auch für dieses Beispiel habe ich versucht, meine Importe auf das zu beschränken, was mit einer einfachen Kerninstallation einer beliebigen Sprache verfügbar ist. Es gibt sicherlich viele Möglichkeiten, wie Sie vorgehen können, aber dies ist ein grundlegendes Beispiel. Außerdem setze ich hier nur das erforderliche ‚loc‘-Element und verwende das ‚id‘-Feld, das beim Crawlen des Dokuments erfasst wurde. Sie könnten diese um die anderen Optionselemente erweitern (z.B. last_modified, etc.).

Viel Spaß beim Mappen!

You Might Also Like

KI-Agenten dominieren den Einkauf. Ist Ihre Website auf die KI-gestützte Suche vorbereitet?

Generative KI-Agenten wie ChatGPT definieren die Produktsuche neu. Erfahren Sie, wie Sie...

Read More

Vom Suchunternehmen zum praktischen KI-Pionier: Unsere Vision für 2025 und darüber hinaus

CEO Mike Sinoway gibt Einblicke in die Zukunft der KI und stellt...

Read More

Wenn KI schief geht: Fehlschläge in der realen Welt und wie man sie vermeidet

Lassen Sie nicht zu, dass Ihr KI-Chatbot einen 50.000 Dollar teuren Tahoe...

Read More

Quick Links