Search VFB terms. This is the search virtualflybrain.org itself runs — the same Solr query, the same ranking — so what comes back first here is what a user would see first on the site.
USE filter_types BY DEFAULT. Unfiltered searches mix scRNAseq artifacts and developmental stages in with the entity the user wants.
Common filter_types recipes:
- Neuron classes: ["neuron", "class"]
- Individual neurons with images: ["neuron", "has_image"]
- Neurons with connectome data: ["neuron", "has_neuron_connectivity"]
- Brain regions / neuropils: ["anatomy"]
- Genes: ["gene"]
- Driver lines / expression patterns: ["expression_pattern"]
- Datasets: ["dataset"]
There are over 200 type names and they change as data is added, so do NOT guess them: call list_search_facets to see the current vocabulary (optionally filtered, e.g. contains="lineage"). Names are matched case- and separator-insensitively, and a name that does not exist is an error with suggestions rather than a silently empty result.
Deprecated terms are excluded by the search itself — you do not need exclude_types: ["deprecated"], and adding it is harmless but pointless.
Stage filtering: VFB covers adult, larval, and embryonic data, and many anatomical FBbt classes are stage-agnostic. Do NOT add "adult" or "larva" to filter_types by default — only add them when the user is explicit about a stage (e.g. "adult Kenyon cells", "larval mushroom body"). Default searches should leave stage out so stage-agnostic classes and all life stages are visible.
Useful flags:
- unique=true (the default) → one row per term. Turn it OFF only when you need to see WHICH synonym matched; with unique=false a term appears once per matching synonym, so "Kenyon cell" can return the same ID several times.
- minimize_results=true → top 10, essential fields only, for exploratory searches.
- auto_fetch_term_info=true → if an exact label match is found, returns get_term_info in the same response.
- boost_types=["has_image", "has_neuron_connectivity"] → float data-rich entities to the top of the list without excluding anything else.
- demote_types=["expression_pattern_fragment"] → sink noisy types to the bottom of the list instead of removing them.
If the search returns no good matches, do NOT fall back to training-data answers — try alternative spellings, synonyms, broader terms, or different filter_types.
Multiple filter_types are ANDed (results must match ALL). Multiple exclude_types are ORed (any match excludes). boost_types and demote_types re-order without excluding; boost wins if a term matches both.
Connector