Skip to content

Commit 5900d7d

Browse files
authored
1.1.1 (#168)
Signed-off-by: usamoi <usamoi@outlook.com>
1 parent fcbb1f2 commit 5900d7d

File tree

5 files changed

+64
-22
lines changed

5 files changed

+64
-22
lines changed

src/vectorchord/admin/kubernetes.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ tensorchord=> \dx
151151
Name | Version | Schema | Description
152152
---------+---------+------------+---------------------------------------------------------------------------------------------
153153
plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language
154-
vchord | 1.1.0 | public | vchord: Vector database plugin for Postgres, written in Rust, specifically designed for LLM
154+
vchord | 1.1.1 | public | vchord: Vector database plugin for Postgres, written in Rust, specifically designed for LLM
155155
vector | 0.8.1 | public | vector data type and ivfflat and hnsw access methods
156156
(3 rows)
157157
```
@@ -216,7 +216,7 @@ spec:
216216
extensions:
217217
- name: vchord
218218
image:
219-
reference: ghcr.io/tensorchord/vchord-scratch:pg18-v1.1.0
219+
reference: ghcr.io/tensorchord/vchord-scratch:pg18-v1.1.1
220220
dynamic_library_path:
221221
- /usr/lib/postgresql/18/lib/
222222
extension_control_path:
@@ -243,7 +243,7 @@ tensorchord=> \dx
243243
Name | Version | Schema | Description
244244
---------+---------+------------+---------------------------------------------------------------------------------------------
245245
plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language
246-
vchord | 1.1.0 | public | vchord: Vector database plugin for Postgres, written in Rust, specifically designed for LLM
246+
vchord | 1.1.1 | public | vchord: Vector database plugin for Postgres, written in Rust, specifically designed for LLM
247247
vector | 0.8.1 | public | vector data type and ivfflat and hnsw access methods
248248
(3 rows)
249249

src/vectorchord/getting-started/installation.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ docker run \
2828
--name vchord-demo \
2929
-e POSTGRES_PASSWORD=mysecretpassword \
3030
-p 5432:5432 \
31-
-d tensorchord/vchord-postgres:pg18-v1.1.0
31+
-d tensorchord/vchord-postgres:pg18-v1.1.1
3232
```
3333

3434
2. Connect to the database using the `psql` command line tool. The default username is `postgres`.
@@ -81,7 +81,7 @@ Other sections may align with the above.
8181
We provide a scratch image that contains only the files of VectorChord. You can install VectorChord in any image using Docker's `COPY`, like
8282

8383
```dockerfile
84-
FROM tensorchord/vchord-scratch:pg18-v1.1.0 AS vchord_scratch
84+
FROM tensorchord/vchord-scratch:pg18-v1.1.1 AS vchord_scratch
8585
FROM postgres:18-bookworm
8686
RUN apt-get update && apt-get install -y postgresql-18-pgvector
8787
COPY --from=vchord_scratch / /
@@ -118,8 +118,8 @@ If you have not installed PostgreSQL yet, please install PostgreSQL. If you have
118118
1. Download the source code, build and install it with `make`.
119119

120120
```sh
121-
curl -fsSL https://github.com/tensorchord/VectorChord/archive/refs/tags/1.1.0.tar.gz | tar -xz
122-
cd VectorChord-1.1.0
121+
curl -fsSL https://github.com/tensorchord/VectorChord/archive/refs/tags/1.1.1.tar.gz | tar -xz
122+
cd VectorChord-1.1.1
123123
make build
124124
make install # or `sudo make install`
125125
```
@@ -161,7 +161,7 @@ Please note that binaries generated with a specific `target-cpu` are not compati
161161
You can also do it by using Cargo's configuration.
162162

163163
```sh
164-
cd VectorChord-1.1.0
164+
cd VectorChord-1.1.1
165165
mkdir -p .cargo
166166
touch .cargo/config.toml
167167
echo 'build.rustflags = ["-Ctarget-cpu=icelake"]' >> ./cargo/config.toml
@@ -174,8 +174,8 @@ If you have not installed PostgreSQL yet, please install PostgreSQL following ht
174174
1. Download Debian packages in [the release page](https://github.com/tensorchord/VectorChord/releases/latest), and install them by `apt`.
175175

176176
```sh
177-
wget https://github.com/tensorchord/VectorChord/releases/download/1.1.0/postgresql-18-vchord_1.1.0-1_$(dpkg --print-architecture).deb
178-
sudo apt install ./postgresql-18-vchord_1.1.0-1_$(dpkg --print-architecture).deb
177+
wget https://github.com/tensorchord/VectorChord/releases/download/1.1.1/postgresql-18-vchord_1.1.1-1_$(dpkg --print-architecture).deb
178+
sudo apt install ./postgresql-18-vchord_1.1.1-1_$(dpkg --print-architecture).deb
179179
```
180180

181181
2. Configure your PostgreSQL by modifying the `shared_preload_libraries` to include the extension. And then restart the PostgreSQL cluster.
@@ -198,8 +198,8 @@ If you have not installed PostgreSQL yet, please install PostgreSQL following ht
198198
1. Download Debian packages in [the release page](https://github.com/tensorchord/VectorChord/releases/latest), and install them by `apt`.
199199

200200
```sh
201-
wget https://github.com/tensorchord/VectorChord/releases/download/1.1.0/postgresql-18-vchord_1.1.0-1_$(dpkg --print-architecture).deb
202-
sudo apt install ./postgresql-18-vchord_1.1.0-1_$(dpkg --print-architecture).deb
201+
wget https://github.com/tensorchord/VectorChord/releases/download/1.1.1/postgresql-18-vchord_1.1.1-1_$(dpkg --print-architecture).deb
202+
sudo apt install ./postgresql-18-vchord_1.1.1-1_$(dpkg --print-architecture).deb
203203
```
204204

205205
2. Configure your PostgreSQL by modifying the `shared_preload_libraries` to include the extension. And then restart the PostgreSQL cluster.

src/vectorchord/getting-started/overview.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ docker run \
3737
--name vectorchord-demo \
3838
-e POSTGRES_PASSWORD=mysecretpassword \
3939
-p 5432:5432 \
40-
-d tensorchord/vchord-postgres:pg18-v1.1.0
40+
-d tensorchord/vchord-postgres:pg18-v1.1.1
4141
```
4242
> In addition to the base image with the VectorChord extension, we provide an all-in-one image, `tensorchord/vchord-suite:pg18-latest`. This comprehensive image includes all official TensorChord extensions. Developers should select an image tag that is compatible with their extension's version, as indicated in [the support matrix](https://github.com/tensorchord/VectorChord-images?tab=readme-ov-file#support-matrix).
4343

src/vectorchord/getting-started/vectorchord-suite.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ CREATE EXTENSION IF NOT EXISTS pg_tokenizer CASCADE;
5757
CREATE EXTENSION IF NOT EXISTS vchord_bm25 CASCADE;
5858
\dx
5959
pg_tokenizer | 0.1.1 | tokenizer_catalog | pg_tokenizer
60-
vchord | 1.1.0 | public | vchord: Vector database plugin for Postgres, written in Rust, specifically designed for LLM
60+
vchord | 1.1.1 | public | vchord: Vector database plugin for Postgres, written in Rust, specifically designed for LLM
6161
vchord_bm25 | 0.3.0 | bm25_catalog | vchord_bm25: A postgresql extension for bm25 ranking algorithm
6262
vector | 0.8.1 | public | vector data type and ivfflat and hnsw access methods
6363
```

src/vectorchord/usage/quantization-types.md

Lines changed: 50 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -39,52 +39,94 @@ Refer to
3939
#### `rabitq8` <badge type="tip" text="since v1.1.0" />
4040

4141
- Description: The data type of a quantized vector that uses `uint8` for internal storage. It's based on extended RaBitQ.[^exrabitq]
42+
- Textual representation: Unlike `vector`/`halfvec`, the textual representation of `rabitq8` is more complex. Suppose the dimension is $d$; it consists of a concatenation of an array of $4$ floating-point numbers enclosed in parentheses and an array of $d$ `uint8` integers enclosed in brackets. For example, `(2.999999, 160.63234, 647, 2.8498733)[255, 205, 187]`. Its interpretation is internal, but you can get the vector it represents by using `dequantize_to_vector(rabitq8)`/`dequantize_to_halfvec(rabitq8)`.
4243

4344
#### `rabitq4` <badge type="tip" text="since v1.1.0" />
4445

4546
- Description: The data type of a quantized vector that uses `uint4` for internal storage. It's based on extended RaBitQ.[^exrabitq]
47+
- Textual representation: Unlike `vector`/`halfvec`, the textual representation of `rabitq4` is more complex. Suppose the dimension is $d$; it consists of a concatenation of an array of $4$ floating-point numbers enclosed in parentheses and an array of $d$ `uint4` integers enclosed in brackets. For example, `(2.999999, 9.420722, 38, 2.8498733)[15, 12, 11]`. Its interpretation is internal, but you can get the vector it represents by using `dequantize_to_vector(rabitq4)`/`dequantize_to_halfvec(rabitq4)`.
4648

4749
### Functions
4850

4951
#### `quantize_to_rabitq8(vector)` <badge type="tip" text="since v1.1.0" />
5052

51-
- Description: Quantizes a vector to `rabitq8`. This function may produce different outputs for the same input with different versions of VectorChord or with different machines.
53+
- Description: Quantize a vector to `rabitq8`. Note that this function may produce sightly different results for identical inputs with different versions of VectorChord or with different machines.
5254
- Result: `rabitq8`, the quantized vector
5355
- Arguments:
5456
- `vector`, the vector to be quantized
5557
- Example:
5658
- `SELECT quantize_to_rabitq8('[1,1,1]'::vector)`
57-
- Note: This function does not have a corresponding `CAST`. If you really need one, you can create it by `CREATE CAST (vector AS rabitq8) WITH FUNCTION quantize_to_rabitq8(vector) AS ASSIGNMENT`.
59+
- Note: This function does not have a corresponding `CAST`. If needed, you can create one manually using `CREATE CAST (vector AS rabitq8) WITH FUNCTION quantize_to_rabitq8(vector) AS ASSIGNMENT`.
5860

5961
#### `quantize_to_rabitq8(halfvec)` <badge type="tip" text="since v1.1.0" />
6062

61-
- Description: Quantizes a vector to `rabitq8`. This function may produce different outputs for the same input with different versions of VectorChord or with different machines.
63+
- Description: Quantize a vector to `rabitq8`. Note that this function may produce sightly different results for identical inputs with different versions of VectorChord or with different machines.
6264
- Result: `rabitq8`, the quantized vector
6365
- Arguments:
6466
- `halfvec`, the vector to be quantized
6567
- Example:
6668
- `SELECT quantize_to_rabitq8('[1,1,1]'::halfvec)`
67-
- Note: This function does not have a corresponding `CAST`. If you really need one, you can create it by `CREATE CAST (halfvec AS rabitq8) WITH FUNCTION quantize_to_rabitq8(halfvec) AS ASSIGNMENT`.
69+
- Note: This function does not have a corresponding `CAST`. If needed, you can create one manually using `CREATE CAST (halfvec AS rabitq8) WITH FUNCTION quantize_to_rabitq8(halfvec) AS ASSIGNMENT`.
70+
71+
#### `dequantize_to_vector(rabitq8)` <badge type="tip" text="since v1.1.1" />
72+
73+
- Description: Dequantize a quantized vector to `vector`. Note that this function may produce sightly different results for identical inputs with different versions of VectorChord or with different machines. The original vector cannot be precisely reconstructed using this function.
74+
- Result: `vector`, the dequantized vector
75+
- Arguments:
76+
- `rabitq8`, the quantized vector to be dequantized
77+
- Example:
78+
- `SELECT dequantize_to_vector(quantize_to_rabitq8('[1,1,1]'::vector))`
79+
- Note: This function does not have a corresponding `CAST`. If needed, you can create one manually using `CREATE CAST (rabitq8 AS vector) WITH FUNCTION dequantize_to_vector(rabitq8) AS ASSIGNMENT`.
80+
81+
#### `dequantize_to_halfvec(rabitq8)` <badge type="tip" text="since v1.1.1" />
82+
83+
- Description: Dequantize a quantized vector to `halfvec`. Note that this function may produce sightly different results for identical inputs with different versions of VectorChord or with different machines. The original vector cannot be precisely reconstructed using this function.
84+
- Result: `halfvec`, the dequantized vector
85+
- Arguments:
86+
- `rabitq8`, the quantized vector to be dequantized
87+
- Example:
88+
- `SELECT dequantize_to_halfvec(quantize_to_rabitq8('[1,1,1]'::halfvec))`
89+
- Note: This function does not have a corresponding `CAST`. If needed, you can create one manually using `CREATE CAST (rabitq8 AS halfvec) WITH FUNCTION dequantize_to_halfvec(rabitq8) AS ASSIGNMENT`.
6890

6991
#### `quantize_to_rabitq4(vector)` <badge type="tip" text="since v1.1.0" />
7092

71-
- Description: Quantizes a vector to `rabitq4`. This function may produce different outputs for the same input with different versions of VectorChord or with different machines.
93+
- Description: Quantize a vector to `rabitq4`. Note that this function may produce sightly different results for identical inputs with different versions of VectorChord or with different machines.
7294
- Result: `rabitq4`, the quantized vector
7395
- Arguments:
7496
- `vector`, the vector to be quantized
7597
- Example:
7698
- `SELECT quantize_to_rabitq4('[1,1,1]'::vector)`
77-
- Note: This function does not have a corresponding `CAST`. If you really need one, you can create it by `CREATE CAST (vector AS rabitq4) WITH FUNCTION quantize_to_rabitq4(vector) AS ASSIGNMENT`.
99+
- Note: This function does not have a corresponding `CAST`. If needed, you can create one manually using `CREATE CAST (vector AS rabitq4) WITH FUNCTION quantize_to_rabitq4(vector) AS ASSIGNMENT`.
78100

79101
#### `quantize_to_rabitq4(halfvec)` <badge type="tip" text="since v1.1.0" />
80102

81-
- Description: Quantizes a vector to `rabitq4`. This function may produce different outputs for the same input with different versions of VectorChord or with different machines.
103+
- Description: Quantize a vector to `rabitq4`. Note that this function may produce sightly different results for identical inputs with different versions of VectorChord or with different machines.
82104
- Result: `rabitq4`, the quantized vector
83105
- Arguments:
84106
- `halfvec`, the vector to be quantized
85107
- Example:
86108
- `SELECT quantize_to_rabitq4('[1,1,1]'::halfvec)`
87-
- Note: This function does not have a corresponding `CAST`. If you really need one, you can create it by `CREATE CAST (halfvec AS rabitq4) WITH FUNCTION quantize_to_rabitq4(halfvec) AS ASSIGNMENT`.
109+
- Note: This function does not have a corresponding `CAST`. If needed, you can create one manually using `CREATE CAST (halfvec AS rabitq4) WITH FUNCTION quantize_to_rabitq4(halfvec) AS ASSIGNMENT`.
110+
111+
#### `dequantize_to_vector(rabitq4)` <badge type="tip" text="since v1.1.1" />
112+
113+
- Description: Dequantize a quantized vector to `vector`. Note that this function may produce sightly different results for identical inputs with different versions of VectorChord or with different machines. The original vector cannot be precisely reconstructed using this function.
114+
- Result: `vector`, the dequantized vector
115+
- Arguments:
116+
- `rabitq4`, the quantized vector to be dequantized
117+
- Example:
118+
- `SELECT dequantize_to_vector(quantize_to_rabitq4('[1,1,1]'::vector))`
119+
- Note: This function does not have a corresponding `CAST`. If needed, you can create one manually using `CREATE CAST (rabitq4 AS vector) WITH FUNCTION dequantize_to_vector(rabitq4) AS ASSIGNMENT`.
120+
121+
#### `dequantize_to_halfvec(rabitq4)` <badge type="tip" text="since v1.1.1" />
122+
123+
- Description: Dequantize a quantized vector to `halfvec`. Note that this function may produce sightly different results for identical inputs with different versions of VectorChord or with different machines. The original vector cannot be precisely reconstructed using this function.
124+
- Result: `halfvec`, the dequantized vector
125+
- Arguments:
126+
- `rabitq4`, the quantized vector to be dequantized
127+
- Example:
128+
- `SELECT dequantize_to_halfvec(quantize_to_rabitq4('[1,1,1]'::halfvec))`
129+
- Note: This function does not have a corresponding `CAST`. If needed, you can create one manually using `CREATE CAST (rabitq4 AS halfvec) WITH FUNCTION dequantize_to_halfvec(rabitq4) AS ASSIGNMENT`.
88130

89131
### Operators
90132

0 commit comments

Comments
 (0)