Was ?:
Ich versuche, in folgendem Format von page_id
Seite-zu-Seite Link Karte (Matrix) von Wikipedia-Seiten zu bekommen:Wikipedia-Seite-zu-Seite Links von pageid
from1 to1 to2 to3 ...
from2 to1 to2 to3 ...
...
Warum ?:
Ich suche einen Datensatz (Seiten aus Wikipedia), um PageRank auszuprobieren.
Problem:
Bei dumps.wikimedia.org es möglich ist, zum Download Seiten-Articles.xml der XML mit dieser Art von Format ist:
<page>
<title>...</title>
<id>...</id> // pageid
<text>...</text>
</page>
, die ich für die Beschaffung von Artikeln verwenden (text
) , dann auch Basis pro Seite Daten (page.sql), die einige Details über Seiten von page_id
enthält und letzten, die für mich relevant erscheint, ist pagelinks.sql das Seiten-zu-Seite-Verbindungsdatensätze enthält. Problem ist, dass pagelinks
Tabelle folgende Felder hat: pl_from
, pl_namespace
und pl_title
.
Idee: erstellen temporäre Datenbank, importieren page
und pagelinks
Tabellen und erstellen Sie diese Matrix durch pagelinks
Tabelle und Abrufen von page_id
s nach pl_title
s. Mögliche Lösung:
SELECT pl_from, GROUP_CONCAT(page_id SEPARATOR ' ') FROM pagelinks
JOIN page ON
pl_title = page_title AND pl_namespace = page_namespace
GROUP BY pl_from
oder für Karte "Backlinks" (to1 from1 from2 from3 ...
, nicht from1 to1 to2 to3 ...
) bekommen:
SELECT page_id, GROUP_CONCAT(pl_from SEPARATOR ' ') FROM pagelinks
JOIN page ON
pl_title = page_title AND pl_namespace = page_namespace
GROUP BY page_id
Frage:
Gibt es einen Ort, wo diese Art von Matrix zu erhalten Seite-zu-Seite-Links von page_id
, so dass ich es nicht selbst erstellen muss? Oder wenn nicht, gibt es einen schnelleren Weg, um diese Art von Matrix als Lösung zu bekommen, die ich darauf hingewiesen habe?
Dann brauchen Sie vielleicht einige Indizes? Ich bin mir nicht sicher, ob die SQL-Dateien sie erstellen. – svick
Es gibt bereits Indizes, ich denke, es ist durch die Geschwindigkeit meiner Disc begrenzt ... zu schade, dass 'page_id' nicht schon Teil der 'pickets'-Tabelle ist ... egal, danke für die Hilfe trotzdem :) – LihO