Create the vector index on the embedding column (if not already exists).
Builds a vector index for the configured embedding_column using the
algorithm specified by embedding_index (DiskANN, HNSW or
IVFFlat). The effective index type name is inferred from the
concrete Algorithm instance and the index name is generated as
<table>_<column>_<type>_idx. If an index has already been discovered
(_embedding_index_name is not None) the operation is skipped.
Prior to executing create index the per-build tuning parameters
(returned by :meth:Algorithm.index_settings) are applied via set
GUCs so they only affect this session. Build-time options (returned by
:meth:Algorithm.build_settings) are appended in a with (...)
clause.
For quantized operator classes:
halfvec_* (scalar quantization) casts both the stored column and
future query vectors to halfvec(dim).bit_* (binary quantization) wraps the column with
binary_quantize(col)::bit(dim).
Otherwise the raw column is indexed.:param concurrently: When True uses create index concurrently to
avoid long write-locks at the expense of a slower build.
:type concurrently: bool
:return: True if the index was created, False when an existing
index prevented creation.
:rtype: bool
:raises AssertionError: If required attributes (embedding_index or
embedding_dimension) are unexpectedly None.