Indizieren und Abfragen von hochdimensionalen Daten in postgreSQL

Ich möchte Daten in Höhenabmessungen indizieren (128 dimensionale Vektoren von ganzen Zahlen im Bereich von [0,254] sind möglich):

| id |      vector       |
|  1 | { 1, 0, ..., 254} |
|  2 | { 2, 128, ...,1}  |
|  . | { 1, 0, ..., 252} |
|  n | { 1, 2, ..., 251} |

Ich habe gesehen, dass PostGIS R-Trees implementiert hat. Kann ich diese Bäume in PostGIS verwenden, um mehrdimensionale Vektoren in Postgres zu indizieren und abzufragen?

Ich habe auch gesehen, dass es einindex Implementierung für int Arrays.

Nun habe ich Fragen zum Ausführen einer Abfrage.
Kann ich eine Knn-Suche und eine Radius-Suche in einem Integer-Array durchführen? Vielleicht muss ich auch meine eigene Distanzfunktion definieren. Ist das möglich? Ich möchte das @ verwendManhattan Entfernung (Blockabstand) für meine Abfragen.

Ich kann meinen Vektor auch als binäre Zeichenfolge mit dem Muster @ darstellev1;v2;...;vn. Hilft dies bei der Suche?

Zum Beispiel, wenn ich diese zwei Zeichenfolge hatte:

1;2;1;1
1;3;2;2

Das Ergebnis / der Abstand zwischen diesen beiden Zeichenfolgen sollte 3 betragen.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage