This is the multi-page printable view of this section.
Click here to print.
Return to the regular view of this page.
VFB APIs
All available VFB APIs and underlying schemas.
VFB provides access to its data through several APIs and databases. The core data infrastructure consists of Neo4j graph databases that store integrated neuroanatomical data, complemented by OWL reasoning services for advanced ontological queries and SOLR search for fast text-based queries.
User Access Options
For Regular Users (GUI Access):
For Programmatic Access:
For Advanced Data Access:
- Direct APIs (documented below): Low-level access to underlying databases and reasoning services
Important Notes
These API documentations describe the schemas used for data storage and basic interfaces. Most VFB queries are constructed from combined query chains that integrate multiple services (Neo4j, OWL reasoning, SOLR search) rather than single API calls. For details on how queries are orchestrated, see the VFB query chains documentation.
The APIs documented here are intended for:
- Advanced users needing direct database access
- Developers building custom tools or integrations
- Researchers requiring low-level data access for specialized analyses
For most use cases, we recommend starting with the VFBconnect library or the web interface.
Core Databases
The main VFB database containing integrated ontology data, expression patterns, image annotations, and connectivity information from multiple sources, optimized for comprehensive queries across the entire knowledge graph.
Specialized database focused on large-scale synaptic connectivity data and related annotations, separated from the main PDB due to the size and complexity of modern connectomes.
OWL reasoning service providing advanced queries over VFB ontologies using Description Logic and SPARQL.
Fast text search and autocomplete service for VFB entities, datasets, and publications.
Additional APIs
VFB also provides other services for specialized functionality. See the Owlery API documentation for OWL reasoning capabilities. Additional REST APIs and services may be documented in future updates.
1 - Production Database (PDB) API
The VFB Production Database (PDB) is a Neo4j graph database containing integrated neuroanatomical data from multiple sources.
The VFB Production Database (PDB) is the main Neo4j graph database containing integrated neuroanatomical data from multiple sources, including ontology data, expression patterns, image annotations, and connectivity information. It serves as the primary data store for comprehensive queries across VFB’s knowledge graph.
Browser Access
You can explore the PDB interactively using the Neo4j browser:
https://pdb.virtualflybrain.org/browser/
Data Structure Overview
The PDB contains over 1.1 million nodes and 43 million relationships, representing a comprehensive knowledge graph of Drosophila neuroanatomy. Below is an overview of the available node labels, relationship types, and property keys.
Node Labels (Gross Classifications)
The PDB uses hierarchical node labels to classify different types of entities:
Core Ontology Nodes:
Class, Individual - OWL ontology elements
Property - Relationships and attributes
Anatomical Classifications:
Anatomy, Neuron, Glial_cell, Muscle, Sense_organ
Nervous_system, Synaptic_neuropil, Ganglion, Neuromere
Neuron_projection_bundle, Template
Cell Types and Lineages:
Motor_neuron, Sensory_neuron, Neuroblast
lineage_* (200+ lineage classifications for neural development)
Molecular and Functional:
Gene, Expression_pattern, Clone, Feature
Receptor, Channel, Transporter, Enzyme
Neurotransmitter_receptor (Cholinergic, GABAergic, Glutamatergic, etc.)
Data and Metadata:
DataSet, Sample, License, Person
pub (Publications), Site, Template
VFB, Deprecated, Individual
Dataset-Specific:
FAFB, FlyCircuit, L1EM, FANC (Different connectome datasets)
has_image, has_neuron_connectivity, has_region_connectivity
Relationship Types
The PDB defines 200+ relationship types for connecting entities:
Core Ontology Relationships:
INSTANCEOF, SUBCLASSOF - Class hierarchies
has_part, part_of - Anatomical composition
located_in, overlaps - Spatial relationships
Connectivity Relationships:
synapsed_to - Basic synaptic connections
has_presynaptic_terminals_in, has_postsynaptic_terminal_in - Detailed synapse locations
sends_synaptic_output_to_region, receives_synaptic_input_in_region - Functional connectivity
synapsed_via_type_*_bouton_to - Specific bouton types
Developmental and Temporal:
develops_from, develops_into - Developmental progression
happens_during, existence_starts_during - Temporal relationships
has_member - Group memberships
Functional and Molecular:
expresses - Gene expression relationships
has_role, capable_of - Functional classifications
regulates, positively_regulates, negatively_regulates - Regulatory interactions
Metadata and Attribution:
has_reference, created_by, has_license - Provenance
database_cross_reference - External identifiers
depicts - Image relationships
Property Keys
Properties provide additional metadata and attributes for nodes and relationships:
Identifiers and Labels:
id, short_form, label, symbol, name
iri, curie, unique_id
Descriptions and Definitions:
definition, description, comment
example_of_usage, elucidation
References and Attribution:
PMID, PMCID, DOI, FlyBase
created_by, creation_date, creator
has_reference, miniref, pub
Spatial and Quantitative:
center, orientation, volume, voxel
Tbars, cell_count, cubic_micrometer_overlap
NBLAST_score, neuronbridge_score
Quality and Status:
confidence_value, curation_status
is_obsolete, deprecated, hide_in_terminfo
has_curation_status, obsolescence_reason
Technical Metadata:
filename, link_base, thumbnail, nrrd, swc
dataset_link, license_url, homepage
Query Examples
Note: These are direct Cypher queries for programmatic access to the PDB. The VFB web application typically uses higher-level query chains that combine multiple data sources and reasoning services. For user-friendly querying, use the VFB web interface.
Find all expression patterns for a gene
MATCH (ep:Expression_pattern)-[:expresses]->(gene:Gene {symbol: 'gene_name'})
RETURN ep
Find neurons with presynaptic terminals in a brain region
MATCH (neuron:Neuron)-[:has_presynaptic_terminals_in]->(region:Synaptic_neuropil {label: 'antennal lobe'})
RETURN neuron, region
Find neurons with specific neurotransmitter types
MATCH (neuron:Neuron)-[:INSTANCEOF]->(type:Class)
WHERE type.label CONTAINS 'GABAergic'
RETURN neuron, type
Find neurons in a specific lineage
MATCH (neuron:Neuron)-[:INSTANCEOF]->(type:Class)-[:has_member]->(lineage)
WHERE lineage:lineage_DL1
RETURN neuron, type, lineage
Find synaptic connections between neurons
MATCH (n1:Neuron)-[syn:synapsed_to]->(n2:Neuron)
WHERE n1:FAFB AND n2:FAFB
RETURN n1, syn, n2
LIMIT 10
Find neurons by morphology similarity (NBLAST)
MATCH (n1:Neuron)-[sim:has_similar_morphology_to]->(n2:Neuron)
WHERE sim.NBLAST_score[0] > 0.8
RETURN n1, n2, sim.NBLAST_score[0] AS score
ORDER BY score DESC
LIMIT 10
Find anatomical parts of a brain region
MATCH (part:Anatomy)-[:part_of]->(region:Anatomy {label: 'adult brain'})
RETURN part
Find genes expressed in a specific cell type
MATCH (gene:Gene)<-[:expresses]-(ep:Expression_pattern)-[:overlaps]->(cell:Neuron)
WHERE cell.label CONTAINS ' Kenyon cell '
RETURN DISTINCT gene, ep
Schema Details
OLS OWL Representation
The core schema follows OLS conventions for representing OWL in Neo4j:
- Classes are represented as nodes with label
Class
- Individuals as nodes with label
Individual
- Properties as nodes with label
Property
- Relationships use
Related edges with property labels
Denormalizations
For query performance, the schema includes denormalized named relationships alongside the generic Related edges. This allows efficient pattern matching without attribute filtering.
Expression Data Model
Expression patterns are modeled as:
(ep:Class:Expression_pattern)-[:SUBCLASSOF]->(:Class {label: 'expression pattern'})
(ep)-[:expresses]->(gene:Class)
(ep)<-[:INSTANCEOF]-(individual:Individual)
(ep)-[:overlaps]->(anatomy:Class)
Connectivity Data
Synaptic connections are represented as:
(neuron1:Individual)-[:synapsed_to {count: N}]->(neuron2:Individual)
Or with detailed synapse partonomy using GO terms.
Data Sources
The PDB integrates data from:
- FlyBase (ontology terms, features, annotations)
- VFB Knowledge Base (connectivity data)
- External ontologies (FBbt, GO, etc.)
- Image datasets and annotations
- Third-party connectivity datasets
- Expression pattern data
Updates and Maintenance
The PDB is updated regularly to incorporate new data releases and maintain consistency with upstream sources.
2 - Knowledge Base (KB) API
The VFB Knowledge Base (KB) stores large-scale synaptic connectivity data and related annotations.
The VFB Knowledge Base (KB) is a specialized Neo4j database focused on storing large-scale connectivity data. Due to the size and complexity of modern connectomes, most ontology data, expression patterns, and other integrated content has been moved to the Production Database (PDB). The KB now serves as a dedicated repository for synaptic connectivity information and related annotations.
Browser Access
Explore the KB using the Neo4j browser:
https://kb.virtualflybrain.org/browser/
Purpose and Scope
The KB serves as:
- Connectivity Data Repository: Primary storage for synaptic connectivity information from large-scale connectomes
- VFB-Specific Annotations: Annotations and metadata related to connectivity data
Note: Ontology data, expression patterns, image annotations, and other integrated content are now stored in the Production Database (PDB) to handle the growing size and complexity of modern connectomes.
Data Types
Connectivity Data
VFB stores connectivity data at multiple levels:
- Neo4j Graph Storage: Detailed synaptic connectivity in the KB graph database
- OWL Ontology Files: Connectomic data exported as OWL files for semantic interoperability
OWL Connectivity Files: Available at https://virtualflybrain.org/data/VFB/OWL/raw/ (connectome_*.owl files)
Two levels of representation in Neo4j:
- Crude Connectivity: Simple triples
A synapsed_to B with synapse counts
- Detailed Synapses: Individual synapse partonomy using GO terms (3 individuals per synapse)
Note: Image annotations, ontology data, and expression patterns are now stored in the Production Database (PDB).
Schema Requirements
The KB schema is designed with specific requirements:
- Updateability: Ontology terms and FlyBase features must be updateable via CI
- ID Stability: Derived class IDs (e.g., expression patterns) must be preserved during updates
- OWL Compatibility: Subset of content convertible to OWL using standard patterns
- Dataset Isolation: Ability to generate OWL files for individual datasets
Expression Patterns
Expression patterns in the KB follow the general semantic specification:
- Definition: Mereological sum of all cells in an anatomical structure expressing a gene/transgene
- Classification: Hierarchical organization via OWL reasoning
- Stability: IDs must remain stable across updates
Pattern Types
- Complete Expression Pattern: All cells in an organism expressing a gene
- Regional Expression Pattern: Subset of expression in specific anatomical regions
Integration with PDB
The KB and PDB work together in VFB’s data architecture:
- KB: Specialized storage for large-scale connectivity data and related annotations
- PDB: Integrated storage for ontology data, expression patterns, image annotations, and cross-referenced information
- Data Flow: Connectivity data from KB is integrated with other data types in PDB for comprehensive queries
Query Patterns
Connectivity Queries
MATCH (neuron1:Individual)-[syn:synapsed_to]->(neuron2:Individual)
RETURN neuron1, syn, neuron2
Synapse Detail Queries
MATCH (neuron:Individual)-[:has_presynaptic_terminal_in]->(region:Class)
RETURN neuron, region
Note: For queries involving ontology data, expression patterns, or image annotations, use the Production Database (PDB).
Maintenance and Updates
The KB is maintained through:
- Manual curation workflows
- Automated data loading pipelines
- Integration with external data sources
- Quality control and validation processes
For more details on the underlying schema, see the VFB Neo4j documentation.
3 - Owlery API
The Owlery API provides OWL reasoning services for VFB’s ontologies, enabling complex queries over class hierarchies and relationships.
The Owlery API is VFB’s OWL (Web Ontology Language) reasoning service, providing advanced query capabilities over the ontologies used in VFB. It enables Description Logic (DL) queries, SPARQL queries with OWL reasoning, and access to multiple knowledgebases.
API Endpoint
Base URL: https://owl.virtualflybrain.org/kbs/vfb/
Note: VFB provides a single knowledgebase (vfb) containing all VFB ontologies and reasoning data.
DL Queries (Description Logic)
Owlery provides standard OWL DL query operations for reasoning over class hierarchies and relationships.
Subclasses
GET /kbs/vfb/subclasses/{class}
Get all subclasses of a named class or class expression.
Parameters:
class: Class IRI or expression
Query Parameters:
direct: true for direct subclasses only (default: false)
Superclasses
GET /kbs/vfb/superclasses/{class}
Get all superclasses of a named class or class expression.
Equivalent Classes
GET /kbs/vfb/equivalent/{class}
Get classes equivalent to the specified class.
Instances
GET /kbs/vfb/instances/{class}
Get all instances (individuals) of a class.
Types
GET /kbs/vfb/types/{individual}
Get all types (classes) of a named individual.
Satisfiability
GET /kbs/vfb/satisfiable/{class}
Check if a class expression is satisfiable (consistent).
SPARQL Services
Owlery provides SPARQL query capabilities with OWL reasoning support.
SPARQL Endpoint
GET /kbs/vfb/sparql?query={sparql_query}
POST /kbs/vfb/sparql
Execute SPARQL queries with OWL reasoning. Supports Owlet-style embedded class expressions.
Query Parameters (GET):
query: URL-encoded SPARQL query
Request Body (POST):
- Content-Type:
application/sparql-query
- Body: SPARQL query text
SPARQL Query Expander
GET /kbs/vfb/expand?query={sparql_query}
POST /kbs/vfb/expand
Expand a SPARQL query by transforming Owlet-style embedded class expressions into FILTER clauses.
VFB Query Integration
Owlery is extensively used in VFB’s high-level query chains. The following table shows how VFB’s named query operations map to Owlery API endpoints:
| VFB Query Operation |
Owlery API Endpoint |
Description |
Owlery Subclasses of |
GET /kbs/vfb/subclasses/{class} |
Get all subclasses of a class |
Owlery Part of |
GET /kbs/vfb/superclasses/{class} |
Get all superclasses/parts containing a class |
Owlery Instances |
GET /kbs/vfb/instances/{class} |
Get all individuals of a class |
Owlery Neuron classes fasciculating here |
Complex query combining multiple endpoints |
Find neurons that fasciculate together in a region |
Owlery Neuron class with part here |
Complex query with spatial reasoning |
Find neuron classes with anatomical parts in a region |
Common VFB Query Patterns
Find all anatomical subclasses of the adult brain
GET /kbs/vfb/subclasses/FBbt_00003624
Used in: PartsOf, SubclassesOf queries
Find all neurons that are part of a specific type
GET /kbs/vfb/instances/FBbt_00005106
Used in: NeuronsPartHere, neuron classification queries
Find all synaptic neuropils in the brain
GET /kbs/vfb/subclasses/FBbt_00005106?direct=true
Used in: NeuronsSynaptic, connectivity queries
Check if a class expression is valid
GET /kbs/vfb/satisfiable/FBbt_00003624
Used in: Query validation and reasoning checks
Complex Query Examples
Many VFB queries combine Owlery with other services. For example, the “Neurons with presynaptic terminals in antennal lobe” query typically involves:
- Owlery reasoning: Find anatomical subclasses of the antennal lobe
- Neo4j lookup: Find neurons with presynaptic terminals in those regions
- SOLR search: Retrieve associated images and metadata
While these complex queries are handled by VFB’s query orchestration system, the individual Owlery components can be called directly for custom analyses.
Usage Examples
Note: VFB supports both full IRIs (e.g., http://purl.obolibrary.org/obo/FBbt_00003624) and short forms (e.g., FBbt_00003624) for class identifiers.
Basic Ontology Queries
Find all parts of the adult brain
GET /kbs/vfb/subclasses/FBbt_00003624
# or using full IRI:
GET /kbs/vfb/subclasses/http://purl.obolibrary.org/obo/FBbt_00003624
Find all neurons in the antennal lobe
GET /kbs/vfb/instances/FBbt_00007484
Find all synaptic neuropil subclasses
GET /kbs/vfb/subclasses/FBbt_00005106
SPARQL Reasoning Examples
Find GABAergic neurons using OWL reasoning
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?neuron ?label
WHERE {
?neuron rdfs:subClassOf <http://purl.obolibrary.org/obo/FBbt_00005106> .
?neuron rdfs:label ?label .
FILTER(CONTAINS(?label, "GABA"))
}
Find anatomical parts with expression data
PREFIX owl: <http://www.w3.org/2002/07/owl#>
SELECT ?part ?expression
WHERE {
?part rdfs:subClassOf <http://purl.obolibrary.org/obo/FBbt_00003624> .
?expression <http://purl.obolibrary.org/obo/RO_0002292> ?part .
}
Owlery returns results in JSON format by default. Available formats include:
application/json (default)
text/plain
application/rdf+xml
text/turtle
Specify format using the Accept header or format query parameter.
Error Handling
Owlery returns standard HTTP status codes:
200: Success
400: Bad request (invalid query/parameters)
404: Knowledgebase or resource not found
500: Server error
Error responses include JSON with error details:
{
"error": "Error message",
"details": "Additional information"
}
Integration with VFB
Owlery is a core component of VFB’s query system, providing the reasoning capabilities that power complex anatomical and connectivity queries. It’s used in combination with the PDB (Neo4j) and SOLR search services to deliver comprehensive results to users.
4 - SOLR Search API
The SOLR Search API provides fast text search and autocomplete functionality for VFB entities, datasets, and publications.
The SOLR Search API powers VFB’s search and autocomplete functionality, providing fast text-based queries across all VFB entities including anatomical terms, neurons, datasets, publications, and more.
Note: Search and autocomplete functionality is also built into VFBconnect by default. The vfb.term() method will automatically attempt to match partial terms and provide autocomplete suggestions. See the VFBconnect documentation for programmatic access.
API Endpoint
Base URL: https://solr.virtualflybrain.org/solr/ontology/select
Note: VFB uses JSON-formatted parameter requests for complex queries.
Search Parameters
Core Search Parameters
| Parameter |
Description |
VFB Default |
Example |
q |
Main search query (supports SOLR query syntax) |
Complex expansion |
(medulla OR medulla* OR *medulla OR *medulla*) |
defType |
Query parser type |
edismax |
edismax |
mm |
Minimum match percentage for multi-term queries |
45% |
45% |
qf |
Query fields with boost values |
label^110 synonym^100 label_autosuggest synonym_autosuggest shortform_autosuggest |
label^110 synonym^100... |
fl |
Fields to return |
short_form,label,synonym,id,facets_annotation,unique_facets |
short_form,label,synonym,id,facets_annotation,unique_facets |
rows |
Number of results to return |
150 |
50 |
start |
Starting offset for pagination |
0 |
0 |
wt |
Response format |
json |
json |
indent |
Pretty-print JSON response |
true |
true |
Query Field Boosting (qf)
VFB uses sophisticated field boosting for optimal search results:
label^110 - Primary labels get highest boost
synonym^100 - Synonyms get high boost
label_autosuggest - Autosuggest-optimized labels
synonym_autosuggest - Autosuggest-optimized synonyms
shortform_autosuggest - Autosuggest-optimized short forms
Query Expansion
VFB automatically expands search terms for better matching:
- Original term:
medulla
- Expanded to:
(medulla OR medulla* OR *medulla OR *medulla*)
This catches prefix, suffix, and infix matches.
Filter Queries (fq)
VFB applies specific filter queries to focus results on relevant entities:
fq=(short_form:VFB* OR short_form:FB* OR facets_annotation:DataSet OR facets_annotation:pub) AND NOT short_form:VFBc_*
This filter includes:
- VFB entities (
VFB*) including anatomical individuals (VFB_*), expression patterns (VFBexp*), and extension ontology terms (VFBext*)
- FlyBase entities (
FB*)
- Datasets (
facets_annotation:DataSet)
- Publications (
facets_annotation:pub)
And excludes:
- VFB image channel node entries (
VFBc_*) - as opposed to anatomical individuals (VFB_*)
Boost Parameters (bq)
VFB uses boost queries to prioritize certain types of results:
bq=short_form:VFBexp*^10.0 short_form:VFB*^100.0 short_form:FBbt*^100.0 short_form:FBbt_00003982^2 facets_annotation:Deprecated^0.001 facets_annotation:DataSet^500.0 facets_annotation:pub^100.0
Boost Priorities:
- Expression patterns (
VFBexp*): 10x boost
- VFB entities (
VFB*): 100x boost
- Anatomy terms (
FBbt*): 100x boost
- Adult brain (
FBbt_00003982): 2x boost
- Datasets: 500x boost
- Publications: 100x boost
- Deprecated items: 0.001x (demoted)
Additional Parameters
| Parameter |
Description |
Default |
pf |
Phrase fields for exact phrase boosting |
true |
indent |
Pretty-print JSON response |
true |
JSON Response Structure
{
"responseHeader": {
"status": 0,
"QTime": 15,
"params": {...}
},
"response": {
"numFound": 1234,
"start": 0,
"docs": [
{
"short_form": "FBbt_00007484",
"label": "antennal lobe",
"synonym": ["antennal lobe"],
"id": "http://purl.obolibrary.org/obo/FBbt_00007484",
"facets_annotation": ["Adult", "Nervous_system"],
"unique_facets": ["adult antennal lobe", "nervous system"]
}
]
}
}
Field Descriptions
| Field |
Description |
short_form |
VFB/FlyBase short identifier |
label |
Primary display name |
synonym |
Alternative names and synonyms |
id |
Full IRI/URI identifier |
facets_annotation |
Categorization facets (e.g., “Adult”, “Nervous_system”) |
unique_facets |
Processed facet combinations for display |
Search Examples
VFB uses JSON-formatted parameter requests for complex queries:
GET /solr/ontology/select?json={"params":{"q":"(medulla OR medulla* OR *medulla OR *medulla*)","q.op":"OR","defType":"edismax","mm":"45%","qf":"label^110 synonym^100 label_autosuggest synonym_autosuggest shortform_autosuggest","indent":"true","fl":"short_form,label,synonym,id,facets_annotation,unique_facets","start":"0","pf":"true","fq":["(short_form:VFB* OR short_form:FB* OR facets_annotation:DataSet OR facets_annotation:pub) AND NOT short_form:VFBc_*"],"rows":"150","wt":"json","bq":"short_form:VFBexp*^10.0 short_form:VFB*^100.0 short_form:FBbt*^100.0 short_form:FBbt_00003982^2 facets_annotation:Deprecated^0.001 facets_annotation:DataSet^500.0 facets_annotation:pub^100.0"}}
URL-Encoded Parameters (Alternative)
For simpler queries, you can use traditional URL parameters:
GET /solr/ontology/select?q=medulla&fl=short_form,label,synonym,id&rows=10&wt=json
Autocomplete Query Example
The medulla autocomplete query expands to match various forms:
Query Breakdown:
q: (medulla OR medulla* OR *medulla OR *medulla*) - Matches medulla at start, middle, or end
defType: edismax - Extended dismax query parser for complex queries
mm: 45% - At least 45% of query terms must match
qf: Field boosting for optimal relevance
fq: Filters to include relevant entities only
bq: Boosts for prioritizing certain result types
Simple Search Examples
Basic term search
GET /solr/ontology/select?q=antennal&rows=10&wt=json&fl=short_form,label
Dataset search
GET /solr/ontology/select?q=dataset&fq=facets_annotation:DataSet&rows=20&wt=json
Publication search
GET /solr/ontology/select?q=connectome&fq=facets_annotation:pub&rows=10&wt=json
Autocomplete Usage
VFB’s autocomplete functionality uses this SOLR API with specific parameters optimized for fast, relevant suggestions:
Autocomplete Query
GET /solr/vfb_olympiad/select?q=antennal&fl=short_form,label,synonym,id,facets_annotation,unique_facets&start=0&rows=150&wt=json&pf=true&fq=(short_form:VFB*%20OR%20short_form:FB*%20OR%20facets_annotation:DataSet%20OR%20facets_annotation:pub)%20AND%20NOT%20short_form:VFBc_*&bq=short_form:VFBexp*^10.0%20short_form:VFB*^100.0%20short_form:FBbt*^100.0%20short_form:FBbt_00003982^2%20facets_annotation:Deprecated^0.001%20facets_annotation:DataSet^500.0%20facets_annotation:pub^100.0
Integration with VFB
The SOLR API is a core component of VFB’s search infrastructure:
- Web Interface: Powers the main search box and autocomplete
- Query Chains: Used in combination with PDB and Owlery queries
- Result Ranking: Complex sorting logic prioritizes relevant results
- Facet Filtering: Enables filtering by categories like “Adult”, “Larva”, etc.
Result Processing
VFB applies additional client-side processing to SOLR results:
- Sorting: Custom ranking based on match quality and entity type
- Deduplication: Removes duplicate entries
- Facet Processing: Converts facet annotations to user-friendly labels
- Caching: VFB implements caching for frequently searched terms
- Pagination: Use
start and rows for large result sets
- Query Optimization: Complex queries may benefit from the
pf (phrase fields) parameter
- Rate Limiting: Consider implementing delays between rapid autocomplete requests
Error Handling
SOLR returns standard HTTP status codes:
200: Success
400: Bad request (malformed query)
500: Server error
Error responses include details in the response header.