What are Payloads?
Each point in Qdrant can have an optional payload containing arbitrary JSON data:Payloads are stored separately from vectors, making them efficient for filtering without loading vector data.
Supported Data Types
Qdrant payloads support rich JSON data types:Primitive Types
Arrays
Store multiple values of the same type:Nested Objects
Hierarchical data structures:Geographic Points
Latitude and longitude coordinates:Datetime Values
RFC3339 formatted datetime strings:Qdrant stores datetimes as microsecond timestamps internally for efficient range queries.
UUID Values
Universally unique identifiers:Payload Indexing
Indexing payload fields dramatically improves filter performance:Creating Payload Indexes
Advanced Index Configuration
Keyword Indexes
Integer Indexes with Range Support
Text Indexes with Tokenization
Querying Payloads
Filtering During Search
Match Conditions
Range Conditions
Geographic Queries
Nested Field Queries
Array Queries
Payload Operations
Setting Payload
Merge new fields into existing payload:Overwriting Payload
Replace entire payload:Deleting Payload Fields
Remove specific keys:Clearing All Payload
Remove entire payload while keeping vector:Payload in Search Results
Control what payload data is returned:Best Practices
Index frequently filtered fields
Index frequently filtered fields
Create indexes for any field you filter on regularly. Indexed filters are orders of magnitude faster than unindexed ones.
Keep payloads reasonably sized
Keep payloads reasonably sized
Aim for payloads under 1KB per point. Store large objects (images, documents) externally and reference them in the payload.
Use appropriate data types
Use appropriate data types
Use the correct PayloadSchemaType when creating indexes:
keywordfor exact match filtering (categories, tags, IDs)integerfor numeric exact match and rangestextfor full-text searchgeofor location queries
Normalize your data
Normalize your data
Keep payload structure consistent across points. This makes querying easier and reduces storage overhead.
Use nested objects sparingly
Use nested objects sparingly
Deep nesting can make queries complex. Consider flattening structures when possible.
Return only needed payload fields
Return only needed payload fields
Use PayloadSelector to fetch only the fields you need, reducing network transfer and deserialization time.
Performance Considerations
Memory Usage
Filter Selectivity
Combine multiple filters for better performance. Qdrant optimizes filter execution order based on selectivity.
Related Concepts
Points
Learn how payloads are attached to points
Indexing
Understand how payload indexes work
Collections
Learn about collection-level configurations
Vectors
Understand the vector component of points