Todos los productos
Search
Centro de documentos

Tablestore:Búsqueda vectorial

Última actualización: Sep 03, 2026

Use el Tablestore SDK for Go para consultar las filas TopK cuyos vectores son más similares a un vector de consulta.

Requisitos previos

Antes de empezar, complete los pasos a continuación:

Descripción

La búsqueda vectorial usa KnnVectorQuery para calcular la distancia entre un vector de consulta y los vectores de un campo Vector, y devuelve las filas TopK más similares. Use Filter para restringir candidatos y MinScore para excluir filas con una puntuación inferior al umbral.

Importante

Se aplican límites al número y las dimensiones de los campos Vector, así como a parámetros como TopK. Para obtener más información, consulte Search index limits.

Nota

Un índice de búsqueda contiene varias particiones del lado del servidor. Cada partición devuelve sus propias filas TopK más cercanas y un coordinador combina los resultados. Por lo tanto, al usar la paginación basada en token, el número total de filas recuperables depende del número de particiones del índice.

func (client *tablestore.TableStoreClient) Search(request *tablestore.SearchRequest) (*tablestore.SearchResponse, error)
query := &search.KnnVectorQuery{
    FieldName:          "embedding",
    TopK:               proto.Int32(10),
    NumCandidates:      proto.Int32(100),
    Float32QueryVector: []float32{1, 0, 0, 0},
    MinScore:           proto.Float32(0.1),
    Filter: &search.TermQuery{
        FieldName: "category",
        Term:      "books",
    },
}
searchQuery := search.NewSearchQuery().
    SetQuery(query).
    SetSort(&search.Sort{Sorters: []search.Sorter{search.NewScoreSort()}})

response, err := client.Search(&tablestore.SearchRequest{
    TableName:   "example_table",
    IndexName:   "example_vector_index",
    SearchQuery: searchQuery,
    ColumnsToGet: &tablestore.ColumnsToGet{
        ReturnAllFromIndex: true,
    },
})
if err != nil {
    log.Fatal(err)
}

fmt.Println(response.SearchHits)

Parámetros

Solicitud de consulta

Nombre

Tipo

Descripción

TableName (obligatorio)

string

Nombre de la tabla de datos.

IndexName (obligatorio)

string

Nombre del índice de búsqueda.

SearchQuery (obligatorio)

search.SearchQuery

Condición de consulta y configuraciones comunes de consulta.

ColumnsToGet (opcional)

*tablestore.ColumnsToGet

Configuración de columnas a devolver. Si se omite este parámetro, solo se devuelven las columnas de clave principal.

RoutingValues (opcional)

[]*tablestore.PrimaryKey

Valores de clave principal para campos de enrutamiento personalizado. Omita este parámetro si no configuró el enrutamiento personalizado.

TimeoutMs (opcional)

*int32

Tiempo de espera de la solicitud en milisegundos.

Configuración de consulta

Nombre

Tipo

Descripción

SetQuery (obligatorio)

search.Query

Especifica la condición de consulta.

SetOffset (opcional)

int32

Especifica la posición inicial. Valor predeterminado: 0. En la paginación basada en desplazamiento, Offset + Limit no puede superar 100,000.

SetLimit (opcional)

int32

Especifica el número máximo de filas a devolver. Valor predeterminado: 10. Valor máximo: 100. Un valor de 0 no devuelve ninguna fila.

SetCollapse (opcional)

*search.Collapse

Contrae los resultados de la consulta. Para obtener más información, consulte Collapse query results.

SetSort (opcional)

*search.Sort

Especifica el orden de clasificación de resultados. Para obtener más información, consulte Sort and paginate results.

SetGetTotalCount (opcional)

bool

Especifica si se deben contar todas las filas coincidentes. Valor predeterminado: false.

SetToken (opcional)

[]byte

Especifica el valor NextToken devuelto por la respuesta anterior. Este método borra Sort porque el token contiene las condiciones de clasificación de la página anterior. No especifique Offset cuando use paginación basada en token.

SetSearchFilter (opcional)

*search.SearchFilter

Aplica un filtro posterior a la consulta. Para obtener más información, consulte Use post-query filters.

Aggregation (opcional)

...search.Aggregation

Configura agregaciones. Para obtener más información, consulte Aggregation.

GroupBy (opcional)

...search.GroupBy

Configura agrupaciones. Para obtener más información, consulte Aggregation.

Condición de consulta vectorial

Nombre

Tipo

Descripción

FieldName (obligatorio)

string

Nombre del campo Vector.

TopK (obligatorio)

*int32

Número de filas más cercanas a devolver. Un valor mayor generalmente mejora la recuperación, pero aumenta la latencia y el costo.

Float32QueryVector (obligatorio)

[]float32

Vector de consulta. Su dimensión debe coincidir con la configuración del campo de índice.

Filter (opcional)

search.Query

Filtro para filas candidatas. Son compatibles todos los tipos de consulta excepto la búsqueda vectorial.

MinScore (opcional)

*float32

Umbral de puntuación mínima. El valor debe ser mayor o igual a 0. Valor predeterminado: 0. Solo se devuelven las filas cuyas puntuaciones superan este valor.

NumCandidates (opcional)

*int32

Número de vectores candidatos para reclasificación. El valor no debe ser menor que TopK. Un valor mayor generalmente mejora la recuperación, pero aumenta la latencia.

Weight (opcional)

*float32

Peso de relevancia de la condición de consulta.

Columnas a devolver

Nombre

Tipo

Descripción

Columns (opcional)

[]string

Columnas de atributos a devolver. Este parámetro solo surte efecto cuando ReturnAll y ReturnAllFromIndex son ambos false.

ReturnAll (opcional)

bool

Especifica si se deben devolver todas las columnas de atributos de la tabla de datos. Valor predeterminado: false.

ReturnAllFromIndex (opcional)

bool

Especifica si se deben devolver todas las columnas de atributos indexadas. Valor predeterminado: false. No configure este parámetro y ReturnAll como true simultáneamente.

Respuesta

Nombre

Tipo

Descripción

TotalCount

int64

Número total de filas coincidentes. El valor depende de SetGetTotalCount.

Rows

[]*tablestore.Row

Filas devueltas por la consulta actual. El número no supera el valor especificado por SetLimit.

SearchHits

[]*tablestore.SearchHit

Aciertos de búsqueda. Lea este campo cuando use resaltado, aciertos internos anidados o puntuaciones de relevancia.

NextToken

[]byte

Token para la siguiente página. Si el valor no está vacío, páselo a la siguiente consulta.

IsAllSuccess

bool

Indica si se consultaron todas las particiones del índice. Si el valor es false, se devuelven resultados parciales y TotalCount puede ser menor que el número real de filas coincidentes.

AggregationResults

search.AggregationResults

Resultados de agregación.

GroupByResults

search.GroupByResults

Resultados de agrupación.