pinecone-full-text-search

Installation
SKILL.md

Pinecone Full-Text Search

Requires pinecone Python SDK ≥ 10.0.0 (pip install pinecone>=10.0.0). The document-schema API graduated out of pinecone.preview in 10.0.0 — it is now a first-class, SemVer-covered part of the SDK, reachable directly off pc (pc.indexes, pc.index(...)). If you land on this skill from an older habit of importing pinecone.preview, stop: that package is deleted outright in 10.0.0 (ModuleNotFoundError, no shim). The packaged helper script pins pinecone==10.0.0 via PEP 723 inline metadata; if you're writing your own code against this skill, pin at least that version. The wire API version is 2026-07.

Authoritative reference (last resort). If you hit a question this skill and its references/*.md files don't answer, the official Pinecone FTS docs are at https://docs.pinecone.io/guides/search/full-text-search. Prefer this skill's content for anything covered here — the docs may describe surfaces (e.g. classic vector API, or the older pinecone.preview shape) that don't apply to the graduated document-schema path. Consult the link only when you're genuinely stuck.

Tell the user up front: "This skill ships a helper at scripts/ingest.py that handles bulk ingestion safely (batched upsert, error inspection, readiness polling). When we get to the ingest step, I'll use it." Surface this at the start of the conversation so the user knows the helper exists. Query construction is hand-written documents.search(...) per the Querying section below — there is no query helper.

A workflow skill for building a Pinecone full-text-search index with the graduated document-schema API (pc.indexes, pc.index(name), API version 2026-07). Covers schema design (text, dense vector, sparse vector, filterable metadata), ingestion (including async indexing and polling), and query construction (text / query_string / dense_vector / sparse_vector scoring; $match_phrase / $match_all / $match_any text-match filters; $eq / $in / $gte / $exists / $and / $or / $not metadata filters).

Scope — this skill is for the document-schema FTS API only

This skill covers pc.indexes.create(..., schema=...), pc.index(name), idx.documents.upsert(...) / idx.documents.batch_upsert(...) / idx.documents.search(...). If you find yourself reaching for any of the following, stop — those are different Pinecone APIs and this skill's guidance and helpers won't apply:

  • Classic vector / records API: pc.Index(name), index.upsert(vectors=[...]), index.query(vector=..., sparse_vector=...), pc.create_index(dimension=..., metric=..., spec=ServerlessSpec(...)). This is the deprecated sugar path in 10.0.0 — it still runs, but it creates a schemaless index served by the vector data plane, addressing the vector by the reserved _values field. It cannot hold full_text_search fields.
  • Integrated-embedding / records indexes: pc.create_index_for_model(...) / pc.indexes.create_for_model(...) with embed={...}. Pinecone vectorizes text server-side, and the resulting semantic_text field is served by the records API (upsert_records / search_records), not the documents API. Different upsert/search shapes. A semantic_text field cannot be combined with full_text_search fields in the same index.

If the user already has a non-document-schema index, they can stand up a separate document-schema index alongside it — the two are independent — but you can't add FTS fields to a classic or integrated-embedding index after the fact, and a document-schema index only ever serves reads and writes through index.documents.* — never index.upsert / index.query / index.upsert_records (those calls are refused with "This index has a document schema, so writes must go through the documents API").

Installs
153
GitHub Stars
15
First Seen
May 7, 2026
pinecone-full-text-search — pinecone-io/skills