mirror of
https://github.com/pgvector/pgvector.git
synced 2026-07-11 15:16:54 +08:00
Improved examples [skip ci]
This commit is contained in:
16
README.md
16
README.md
@@ -4,7 +4,7 @@ Open-source vector similarity search for Postgres
|
|||||||
|
|
||||||
```sql
|
```sql
|
||||||
CREATE TABLE table (column vector(3));
|
CREATE TABLE table (column vector(3));
|
||||||
CREATE INDEX ON table USING ivfflat (column);
|
CREATE INDEX ON table USING ivfflat (column vector_l2_ops);
|
||||||
SELECT * FROM table ORDER BY column <-> '[1,2,3]' LIMIT 5;
|
SELECT * FROM table ORDER BY column <-> '[1,2,3]' LIMIT 5;
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -62,7 +62,7 @@ Speed up queries with an approximate index. Add an index for each distance funct
|
|||||||
L2 distance
|
L2 distance
|
||||||
|
|
||||||
```sql
|
```sql
|
||||||
CREATE INDEX ON table USING ivfflat (column vector_l2_ops); -- default if no opclass specified
|
CREATE INDEX ON table USING ivfflat (column vector_l2_ops);
|
||||||
```
|
```
|
||||||
|
|
||||||
Inner product
|
Inner product
|
||||||
@@ -83,8 +83,8 @@ Indexes should be created after the table has data for optimal clustering. If th
|
|||||||
-- Postgres 12+
|
-- Postgres 12+
|
||||||
REINDEX INDEX CONCURRENTLY index_name;
|
REINDEX INDEX CONCURRENTLY index_name;
|
||||||
|
|
||||||
-- Postgres < 12 (change opclass as needed)
|
-- Postgres < 12
|
||||||
CREATE INDEX CONCURRENTLY temp_name ON table USING ivfflat (column vector_l2_ops);
|
CREATE INDEX CONCURRENTLY temp_name ON table USING ivfflat (column opclass);
|
||||||
DROP INDEX CONCURRENTLY index_name;
|
DROP INDEX CONCURRENTLY index_name;
|
||||||
ALTER INDEX temp_name RENAME TO index_name;
|
ALTER INDEX temp_name RENAME TO index_name;
|
||||||
```
|
```
|
||||||
@@ -96,7 +96,7 @@ Also, unlike typical indexes which only affect performance, you may see differen
|
|||||||
Specify the number of inverted lists (100 by default)
|
Specify the number of inverted lists (100 by default)
|
||||||
|
|
||||||
```sql
|
```sql
|
||||||
CREATE INDEX ON table USING ivfflat (column) WITH (lists = 100);
|
CREATE INDEX ON table USING ivfflat (column opclass) WITH (lists = 100);
|
||||||
```
|
```
|
||||||
|
|
||||||
### Query Options
|
### Query Options
|
||||||
@@ -123,7 +123,7 @@ COMMIT;
|
|||||||
Consider [partial indexes](https://www.postgresql.org/docs/current/indexes-partial.html) for queries with a `WHERE` clause
|
Consider [partial indexes](https://www.postgresql.org/docs/current/indexes-partial.html) for queries with a `WHERE` clause
|
||||||
|
|
||||||
```sql
|
```sql
|
||||||
CREATE INDEX ON table USING ivfflat (column) WHERE (other_column = 123);
|
CREATE INDEX ON table USING ivfflat (column opclass) WHERE (other_column = 123);
|
||||||
```
|
```
|
||||||
|
|
||||||
To index many different values of `other_column`, consider [partitioning](https://www.postgresql.org/docs/current/ddl-partitioning.html) on `other_column`.
|
To index many different values of `other_column`, consider [partitioning](https://www.postgresql.org/docs/current/ddl-partitioning.html) on `other_column`.
|
||||||
@@ -136,10 +136,10 @@ To speed up queries without an index, increase `max_parallel_workers_per_gather`
|
|||||||
SET max_parallel_workers_per_gather = 4;
|
SET max_parallel_workers_per_gather = 4;
|
||||||
```
|
```
|
||||||
|
|
||||||
To speed up queries with an index, increase the number of inverted lists.
|
To speed up queries with an index, increase the number of inverted lists (at the expense of recall).
|
||||||
|
|
||||||
```sql
|
```sql
|
||||||
CREATE INDEX ON table USING ivfflat (column) WITH (lists = 1000);
|
CREATE INDEX ON table USING ivfflat (column opclass) WITH (lists = 1000);
|
||||||
```
|
```
|
||||||
|
|
||||||
## Reference
|
## Reference
|
||||||
|
|||||||
Reference in New Issue
Block a user