Sphinx, ohne eine auto_increment-id
Ich bin aktuell in der Planung auf die Schaffung eines großen Datenbank (2+ Millionen Zeilen) mit einer Vielzahl von Daten aus verschiedenen Quellen. Ich möchte vermeiden, Strukturierung der Datenbank, auf auto_increment ids zu verhindern, dass gegen sync-Probleme mit der Replikation, und auch, weil jedes Element eingelegt ist, wird eine alphanumerische Produktcodes, die garantiert einzigartig zu sein - es scheint mir mehr Sinn zu verwenden, statt.
Ich bin auf der Suche bei einer Suchmaschine die Indizierung der Datenbank mit Sphinx suchen eher Ansprechend durch seine Bauweise um die Indizierung von relationalen Datenbanken. Dennoch, mit Blick auf verschiedene tutorials und Dokumentation scheint zu zeigen, Datenbank-designs, die abhängig von einer auto_increment-Feld in der einen oder anderen form und einem eher mutige Aussage in der Dokumentation sagen, dass die Dokument-ids müssen 32 - /64-bit-Ganzzahlen oder nur Dinge, die brechen.
Gibt es eine Möglichkeit, um eine Datenbank indiziert, die von Sphinx ohne auto_increment-Felder als id?
Du musst angemeldet sein, um einen Kommentar abzugeben.
sphinx erfordert nur ids integer und einzigartig, es kümmert sich nicht, wenn Sie auto erhöht oder nicht, so können Sie roll-out Ihrer eigenen Logik. Zum Beispiel, erzeugen Ganzzahl hashes für Ihren string-Schlüssel.
Sicher - das ist einfach zu umgehen. Wenn Sie brauchen, um Ihre eigenen IDs nur für die Sphinx, und Sie nicht möchten, dass Sie kollidieren, können Sie etwas tun, wie dieses in Ihrem sphinx.conf (Beispiel-code für MySQL)
Das problem ist nur, dass Sie noch brauchen, eine Möglichkeit zu wissen, was die Aufzeichnungen wurden aufeinander abgestimmt, indem Sie Ihre Suche. Sphinx wird wieder die id (das ist jetzt bedeutungslos) plus alle Spalten, die Sie markieren als "Attribute".
Sphinx 0.9.10 und oben wird in der Lage sein, um Ihr Produkt-code, um Sie als Teil der such-Ergebnisse, weil es string-Attribute unterstützen.
0.9.10 ist nicht ein offizieller release noch nicht, aber es sieht gut aus. Es sieht aus wie Zawodny läuft es über auf Craig ' s List also ich würde nicht zu nervös, unter Berufung auf dieses feature.
Sphinx nicht davon abhängen, auto-Inkrement , der braucht nur eindeutige integer-Dokument-ids. Vielleicht können Sie ein Surrogat eindeutige integer-id in den Tabellen für die Arbeit mit sphinx. Wie es bekannt ist, dass integer-sucht sind viel schneller als alphanumerische Suche. BTW, wie lange ist ur alphanumerischen product code? keine Proben?
Ich denke, es ist möglich, erzeugen ein XML-Stream aus Ihren Daten.
Erstellen Sie dann die ID via Software (Ruby, Java, PHP).
Werfen Sie einen Blick auf
http://github.com/burke/mongosphinx