Saltar al contenido principal

Documentation Index

Fetch the complete documentation index at: https://docs.mka1.com/llms.txt

Use this file to discover all available pages before exploring further.

La API de búsqueda proporciona dos formas de almacenar y recuperar texto:
  • Text Store — almacenamiento vectorial preconfigurado con búsqueda híbrida, deduplicación y agrupamiento. No se requiere configuración de esquema ni de índice.
  • Tables — acceso de bajo nivel a la base de datos vectorial con control total sobre el esquema, índices, filtros y operaciones de búsqueda.
Comienza con Text Store para la mayoría de los casos de uso. Utiliza Tables cuando necesites esquemas personalizados, gestión explícita de índices o expresiones de filtro avanzadas. Si necesitas un ejemplo orientado al exterior que muestre cómo GraphRAG supera la recuperación plana en un benchmark definido, consulta Evaluación de GraphRAG.

Crear un text store

Proporciona un nombre y la dimensión de embedding para tus vectores.
mka1 search text-store create \
  -H 'X-On-Behalf-Of: <end-user-id>' \
  --body '{
    "store_name": "product_catalog",
    "dimension": 3
  }'

Agregar textos a un text store

Agrega textos con sus vectores de embedding precomputados. Los textos duplicados se omiten automáticamente. El campo group etiqueta las entradas para que puedas eliminarlas o recuperarlas como un conjunto más adelante.
mka1 search text-store add-texts \
  --store-name product_catalog \
  --body '{
    "texts": [
      "Noise-cancelling over-ear headphones with 30-hour battery.",
      "Compact wireless earbuds with active noise cancellation.",
      "Studio monitor headphones with flat frequency response."
    ],
    "vectors": [
      [0.16, -0.08, 0.29],
      [0.14, -0.06, 0.31],
      [0.09, -0.12, 0.22]
    ],
    "group": "headphones"
  }'

Buscar en un text store

Envía una consulta de texto y su vector de embedding. El servicio realiza una búsqueda híbrida combinando búsqueda de texto completo y similitud vectorial.
mka1 search text-store search-texts \
  --store-name product_catalog \
  --body '{
    "query": "noise-cancelling headphones",
    "vector": [0.16, -0.08, 0.29],
    "limit": 5
  }'

Eliminar texto de un text store

Elimina entradas específicas por sus valores de texto exactos.
mka1 search text-store delete-texts \
  --store-name product_catalog \
  --body '{
    "texts": [
      "Studio monitor headphones with flat frequency response."
    ]
  }'

Eliminar textos por grupo de un text store

Elimina todas las entradas que pertenezcan a uno o más grupos.
mka1 search text-store delete-texts \
  --store-name product_catalog \
  --body '{
    "groups": ["headphones"]
  }'

Eliminar un text store

Elimina el store y todos sus datos.
mka1 search text-store delete --store-name product_catalog

Uso avanzado: Tables

Tables te da acceso directo a la base de datos vectorial subyacente. Defines el esquema, eliges qué campos indexar, insertas filas estructuradas y compones tú mismo las operaciones de búsqueda.

Campos de esquema

Cada campo en un esquema de tabla tiene un name, type y propiedades opcionales.
TipoDescripciónSoporte de índice
stringDatos de textoFTS (búsqueda de texto completo)
intEntero de 32 bitsBTREE, BITMAP, LABEL_LIST
floatPunto flotante de 64 bitsBTREE, BITMAP, LABEL_LIST
datetimeMarca de tiempo con zona horaria opcionalBTREE
vectorEmbedding de dimensión fijaIVF_FLAT, IVF_PQ, IVF_HNSW_PQ, IVF_HNSW_SQ
listLista de strings, ints o floats
Establece nullable en false para campos obligatorios. Agrega "index": "FTS" en un campo string para habilitar búsqueda de texto completo al momento de la creación. Los campos vectoriales requieren una propiedad dimensions que coincida con el tamaño de tu embedding.

Crear una tabla de búsqueda

Define una tabla con un esquema que describa tus registros. El siguiente ejemplo crea una base de conocimiento de soporte con un campo de texto indexado para búsqueda de texto completo y un campo vectorial para búsqueda semántica.
mka1 search tables create \
  --body '{
    "name": "support_kb",
    "schema": {
      "fields": [
        { "name": "id", "type": "string", "nullable": false },
        { "name": "content", "type": "string", "nullable": false, "index": "FTS" },
        { "name": "category", "type": "string", "nullable": false },
        { "name": "rating", "type": "float", "nullable": true },
        { "name": "embedding", "type": "vector", "nullable": false, "dimensions": 3 }
      ]
    }
  }'

Insertar filas

Inserta registros que coincidan con el esquema de la tabla. Puedes enviar varias filas en una sola solicitud.
mka1 search tables insert-data \
  --table-name support_kb \
  --body '{
    "data": [
      {
        "id": "doc_001",
        "content": "Reset your password from the account settings page.",
        "category": "account",
        "rating": 4.7,
        "embedding": [0.13, -0.09, 0.41]
      },
      {
        "id": "doc_002",
        "content": "Use two-factor authentication for added account security.",
        "category": "security",
        "rating": 4.9,
        "embedding": [0.07, -0.02, 0.36]
      }
    ]
  }'

Operaciones de búsqueda

La búsqueda en tablas te permite componer múltiples operaciones en una sola solicitud. Las operaciones se ejecutan en orden — comienza con una búsqueda primaria, luego refina con filtros, límites u offsets. Operaciones primarias inicializan el conjunto de resultados:
OperaciónDescripción
vector_searchEncuentra filas más cercanas a un vector de consulta. Soporta tipos de distancia cosine, l2, dot y hamming.
ftsBúsqueda de palabras clave de texto completo en uno o más campos string.
Operaciones secundarias refinan los resultados:
OperaciónDescripción
filterAplica una expresión similar a SQL. Establece prefilter en true para filtrar antes de rankear.
limitLimita el número de filas devueltas.
offsetOmite las primeras N filas para paginación.
Utiliza returnColumns para controlar qué campos regresan en la respuesta.

Buscar en la tabla

El siguiente ejemplo combina una búsqueda vectorial con un pre-filtro en el campo category.
mka1 search tables search-data \
  --table-name support_kb \
  --body '{
    "operations": [
      {
        "type": "vector_search",
        "field": "embedding",
        "vector": [0.11, -0.06, 0.37],
        "distanceType": "cosine",
        "limit": 5
      },
      {
        "type": "filter",
        "expression": "category = '\''security'\''",
        "prefilter": true
      }
    ],
    "returnColumns": ["id", "content", "category", "rating"]
  }'

Eliminar filas

Elimina filas de una tabla usando una expresión de filtro.
mka1 search tables delete-data \
  --table-name support_kb \
  --body '{
    "filter": "id IN ('\''doc_001'\'', '\''doc_002'\'')"
  }'

Eliminar una tabla

Elimina la tabla y todos sus datos.
mka1 search tables delete --table-name support_kb