pinecone:full-text-search

Create, ingest, and query Pinecone full-text-search document indexes via the Python SDK.

68|12|Updated Dec 17, 2025
One-click install
npx skills add https://github.com/pinecone-io/pinecone-claude-code-plugin --skill pinecone-full-text-search-pinecone-io
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: pinecone:full-text-search
Source: https://github.com/pinecone-io/pinecone-claude-code-plugin/tree/main/skills/full-text-search
Command: npx skills add https://github.com/pinecone-io/pinecone-claude-code-plugin --skill pinecone-full-text-search-pinecone-io

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires pinecone, typer, and includes scripts (resource) and references (resource) components.

What problem does it solve? Building a full-text search index on Pinecone's document-schema API involves immutable schema decisions, asynchronous indexing delays, and silent batch-ingest failures that are easy to get wrong. This Skill guides schema design, safe bulk ingestion, and correct query construction so your search index works on the first pass. ## Core Features & Use Cases - Schema Design Guidance: Declare only search fields (FTS strings, dense/sparse vectors) in the schema while filterable metadata is auto-indexed from documents, avoiding 400 errors on managed indexes. - Safe Bulk Ingestion: Ships scripts/ingest.py, which batch-upserts JSONL documents, inspects every batch result for hidden errors, and polls until documents are actually searchable. - Query Construction: Build documents.search(...) calls with BM25 text scoring, Lucene query_string syntax, dense/sparse vector ranking, and text-match or metadata filters, including hybrid lexical-filter plus vector-ranking patterns. - Use Case: A user with a raw CSV of product reviews asks to make it searchable. The Skill walks through schema decisions, creates the index, ingests the processed JSONL with the bundled script, and validates with live probe queries. ## Quick Start Ask the agent to create a Pinecone full-text search index from your JSONL data file and run a keyword search against it.

Frequently Asked Questions about pinecone:full-text-search

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create a full-text search index in Pinecone?

Use pc.indexes.create with a schema built via SchemaBuilder, declaring only search fields like FTS-enabled strings and vectors. On managed indexes, filterable metadata fields must be omitted from the schema and included directly on upserted documents instead.

How do I bulk ingest JSONL documents into a Pinecone index?

Run the bundled ingest.py script with uv, passing --data, --index, and --sentinel-field flags. It batch-upserts documents, inspects every batch result for hidden per-document errors, and polls documents.search until the data is actually searchable.

Why does my Pinecone search return empty results right after upserting?

Documents are indexed asynchronously after batch_upsert returns 202, so immediate searches hit an incomplete inverted index. Poll documents.search with a sentinel query and a deadline until matches appear before trusting the index.

Can I combine keyword and vector search in one Pinecone query?

Yes, but not by mixing scoring types in score_by, which the server rejects. Put the lexical requirement in filter using $match_phrase, $match_all, or $match_any, and rank with a single dense_vector or sparse_vector clause in score_by.

What Pinecone SDK version is required for the document-schema API?

The document-schema API requires pinecone Python SDK version 10.0.0 or higher, where it graduated out of pinecone.preview. The preview package is deleted in 10.0.0, so older imports fail with ModuleNotFoundError.

What are the size limits for Pinecone full-text search documents?

Each document is capped at 2 MB total, each FTS string field at 100 KB and 10,000 tokens, and filterable metadata at 40 KB per document. Long prose fields should be chunked before ingestion to stay under the token limit.