Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallIf you index long articles for vector search in Manticore Search with default settings, the embedding model may only ever see the opening part of each document. Chunking fixes this by giving one document several vectors, but only when you pick a strategy that produces multiple vectors and store them in a float_vector_array. This guide explains what each CHUNK_STRATEGY does, which settings control chunk size, overlap and count, and how to choose among them with your own queries.
Why default vector search misses the end of a document
The default CHUNK_STRATEGY for model-backed columns is truncate. In this mode the model embeds only the text that fits inside its input window, and everything after that point is dropped from the embedding. Manticore’s KNN documentation warns that this can hide the later parts of a long article from retrieval. The text is not removed from the row, but it contributes nothing to the vector that represents the document, so a query that matches only a conclusion or an appendix can fail even though the words are present. The Manticore Search Manual, KNN section documents this behavior.
As an Amazon Associate I earn from qualifying purchases.
The five chunking strategies
Manticore documents five CHUNK_STRATEGY options for model-backed columns. They differ in how many vectors each document receives, and that difference determines the column type you need.
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Repair Windows errors before they cause bigger problems3Fix the driver behind crashes, sound loss and screen glitches| Strategy | Vectors per document | Column type required | What it does | Main trade-off |
|---|---|---|---|---|
truncate (default) |
One | Plain float_vector |
Embeds only the text that fits the model input window | Later text can be lost to retrieval |
mean |
One | Plain float_vector |
Splits the document, embeds the pieces, and averages them | Covers the full text, but a document covering several topics is blurred into one representation |
fixed |
One per fixed token window | float_vector_array |
Cuts the text into fixed-size token windows | Predictable chunk lengths, but boundaries can fall mid-sentence |
recursive |
One per piece | float_vector_array |
Splits by paragraph, then line, then sentence, then space, keeping each piece under the token ceiling | Respects natural separators where possible, with less predictable chunk sizes |
sentence |
One per sentence group | float_vector_array |
Packs whole sentences up to the token limit | Keeps sentence boundaries intact, which depends on how clean the sentence splitting is |
Single-vector strategies
truncate and mean both produce one vector per document. truncate is simple and cheap, but it is blind to the tail. mean avoids tail loss by averaging every piece, which is useful when a document has one dominant subject. When a long page covers several unrelated subjects, the averaged vector sits between them and can match none of them well.
#1 Best Overall
Multi-vector strategies
fixed, recursive and sentence produce one vector per chunk. Manticore rejects these strategies on a plain float_vector, so the column must be declared as a float_vector_array. If you switch an existing design to chunking, plan for that change in the table definition rather than only in the option list.
How multi-vector documents are stored and ranked
With a float_vector_array, the vectors from all documents are indexed together. A document matches when any one of its vectors is close to the query. Manticore returns that document once, not once per chunk, and reports the distance to its closest vector. The KNN manual puts it directly: “Each matching document is returned exactly once, and knn_dist() reports the distance to its closest vector.”
The practical effect is that a relevant passage can represent a long document. The whole article does not need to be similar to the query, only one section of it does. This is the main reason to use chunking for long-form content such as manuals, reports and documentation pages, where a reader’s question usually targets one section.
Chunk size, overlap and chunk count
Three settings control how chunks are formed. Each one is a configuration choice that should be checked against your own model and corpus, because Manticore’s documentation sets the mechanics but not the best values.
MAX_TOKENS: chunk size
MAX_TOKENS sets the chunk size in tokens. The documented default is 0, which uses the model’s own limit. If you request a larger value than the model allows, Manticore clamps it to that limit rather than failing, so a value you set may be smaller in practice than the number you wrote.
OVERLAP_TOKENS: shared text at boundaries
OVERLAP_TOKENS shares tokens between adjacent chunks, so material near a boundary can appear in both neighboring chunks. It requires an explicit non-zero MAX_TOKENS; it will not work with the default of zero. Manticore also limits overlap so that chunking always moves forward:
Rank #3
fixedandrecursive: overlap is capped at half the chunk size.sentence: the next chunk is seeded with trailing whole sentences from the previous one, and each step advances by at least one sentence.
MAX_CHUNKS: vector count per document
MAX_CHUNKS caps the number of vectors generated for each document. A value of 0, the documented default, means there is no configured ceiling. A ceiling bounds indexing cost and index size, but any text that would fall beyond the cap receives no chunk vector of its own, so it is exactly the kind of tail loss chunking is meant to prevent. Set it high enough for your longest documents, or leave it at zero and manage the cost another way.
These chunking options apply together with MODEL_NAME and KNN_TYPE='hnsw', as the KNN documentation describes.
MAX_INPUT_TOKENS is a different control
Manticore also documents MAX_INPUT_TOKENS for local auto-embedding columns. It caps the input text before embedding, and changing it later does not re-embed existing rows. It is a truncation control, not a retrieval strategy. Chunking represents long input as several searchable vectors, while MAX_INPUT_TOKENS deliberately shortens what the model sees. Use MAX_INPUT_TOKENS when you want to bound embedding time for each row and accept that the tail will not be searched. Use multi-vector chunking when the tail must be searchable.
Rank #4
Choosing a strategy for your workload
The official material does not establish one best strategy, chunk size or overlap for all corpora. Decide along these axes:
- Retrieval unit: do users need the whole document or the passage that answers their question?
- Boundary coherence: does a split mid-sentence or mid-paragraph damage meaning in your content?
- Vectors per document: more chunks mean a larger index and more rows to rank.
- Model input limit: the model’s window sets the ceiling for
MAX_TOKENS. - Indexing and inference cost: more chunks mean more embedding work.
- Measured quality: recall and precision on your own queries, which is the only test that matters for your data.
Evaluate the choice with a repeatable process:
- Collect a set of representative queries, and for each one record which document and which section should be returned. Include queries that target the last third of long documents.
- Create two or three test tables over the same corpus, one with
truncateas a baseline and one or two multi-vector configurations, each with afloat_vector_arraycolumn. - Run the same queries against each table and record whether the expected document appears, its rank, and whether the late-section queries now match.
- Note the number of vectors produced, indexing time and query latency for each configuration.
- Adopt the configuration that improves late-section recall without an unacceptable cost, then fix
MAX_TOKENS,OVERLAP_TOKENSandMAX_CHUNKSin your production table definition.
Model limits and CPU embedding cost
The Manticore table creation reference uses Qwen/Qwen3-Embedding-0.6B as an example model that accepts up to 32,768 tokens. The same reference warns that CPU embedding time grows superlinearly with input length, and it gives '512' as an example cap for long or unbounded text. These are documentation examples. They are not guarantees about every embedding model, and the context window of your chosen model is what matters. The Manticore Search Manual, Creating a table page lists these options and their examples.
On CPU-only hosts, the superlinear cost means that very large chunks can be disproportionately slow to embed. Smaller, bounded chunks are one way to keep indexing time predictable, and the trade-off should be measured on your hardware.
Best Value
Version and deployment checks
According to the Manticore Search changelog, v29.4.0 added chunking strategies for auto-embeddings along with the MAX_TOKENS, OVERLAP_TOKENS and MAX_CHUNKS options, and the original truncate behavior remains the default. The changelog lists v29.9.0 as released on September 11, 2026. Before you rely on these features, confirm:
- The deployed Manticore Search version is v29.4.0 or later.
- The installed Manticore Columnar Library version is compatible with that release, as stated in the changelog.
- The staging environment uses the same version and model as production, since results depend on both.
Troubleshooting late-section misses
If queries that target the end of long documents still fail after you enable chunking, check these causes in order:
- The column still uses
truncate, so the tail is never embedded. - The column is a plain
float_vector, which cannot hold multi-vector strategies, so the table definition needs to be rebuilt. MAX_CHUNKSis lower than the number of chunks your longest documents produce.MAX_TOKENSwas set to a value the model clamped to a much smaller size than intended, producing more chunks than expected but with less context per chunk.- The query is matching a general topic that appears across many sections, so the closest chunk belongs to a different document. Compare the results with the expected document rather than assuming the index is wrong.
Re-run your evaluation set after each change so that each fix is measured rather than assumed.
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Clear out junk files and repair common Windows errorsFree Scan →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




