microsoft/semantic-kernel · error · VectorStoreOperationException
No searchable fields found for hybrid search.
Error message
No searchable fields found for hybrid search.
What it means
Raised by _inner_search for SearchType.KEYWORD_HYBRID when no searchable text fields can be resolved. Search fields come from either options.additional_property_name (a single explicit field) or, by default, from DATA fields in the definition with is_full_text_indexed=True. If additional_property_name is None and no DATA field has is_full_text_indexed set, search_fields is empty and hybrid search cannot run, so a VectorStoreOperationException fires.
Source
Thrown at python/semantic_kernel/connectors/azure_ai_search.py:608
)
]
else:
raise VectorStoreOperationException("No vector or keywords provided for vector search.")
case SearchType.KEYWORD_HYBRID:
if values is None:
raise VectorStoreOperationException("No vector and/or keywords provided for search.")
vector_field = self.definition.try_get_vector_field(options.vector_property_name)
search_args["search_fields"] = (
[options.additional_property_name]
if options.additional_property_name is not None
else [
field.name
for field in self.definition.fields
if field.field_type == FieldTypes.DATA and field.is_full_text_indexed
]
)
if not search_args["search_fields"]:
raise VectorStoreOperationException("No searchable fields found for hybrid search.")
search_args["search_text"] = values
vector = await self._generate_vector_from_values(values, options) if vector is None else vector
if vector is not None:
search_args["vector_queries"] = [
VectorizedQuery(
vector=vector, # type: ignore
fields=vector_field.name if vector_field else None,
)
]
else:
search_args["vector_queries"] = [
VectorizableTextQuery(
text=values,
fields=vector_field.name if vector_field else None,
)
]
try:View on GitHub (pinned to c028a0c7dc)
Solutions
- Mark at least one DATA field with is_full_text_indexed=True in your VectorStoreCollectionDefinition (e.g. the field holding the text content).
- Alternatively, set VectorSearchOptions.additional_property_name to the name of the field to search.
- Re-create the collection/index after changing the definition so the schema reflects the searchable field.
Example fix
// before
fields=[key_field, vector_field] # no searchable text field
// after
fields=[
key_field,
field(type_='str', name='content', is_full_text_indexed=True),
vector_field,
] Defensive patterns
Strategy: validation
Validate before calling
def has_searchable_fields(definition, additional_property_name=None) -> bool:
if additional_property_name is not None:
return True
return any(
f.field_type.value == "data" and f.is_full_text_indexed
for f in definition.fields
)
assert has_searchable_fields(collection.definition, opts.additional_property_name) Try / catch
from semantic_kernel.exceptions import VectorStoreOperationException
try:
res = await collection.search(search_type=SearchType.KEYWORD_HYBRID, values=q)
except VectorStoreOperationException as e:
if "No searchable fields" in str(e):
# mark a DATA field is_full_text_indexed=True, recreate index, then retry
...
raise Prevention
- Mark at least one text DATA field with is_full_text_indexed=True in the definition.
- Or set VectorSearchOptions.additional_property_name to the searchable field.
- Re-create the index after changing the definition.
When it happens
Trigger: Running a KEYWORD_HYBRID search on a collection whose definition marks no data field as is_full_text_indexed=True, and where VectorSearchOptions.additional_property_name is not set. The keyword half of hybrid search has no field to search over.
Common situations: Defining a record with only a key + vector field and no searchable text field; setting is_full_text_indexed on a VECTOR field instead of a DATA field; forgetting to mark the content/title field as full-text searchable.
Related errors
- {field.type_} not supported in Azure AI Search.
- {field.index_kind} not supported in Azure AI Search.
- {field.distance_function} not supported in Azure AI Search.
- No vector and/or keywords provided for search.
- Field '{top_level}' not in data model (storage property name
AI-assisted analysis of microsoft/semantic-kernel@c028a0c7dc (2026-08-13).
Data as JSON: /api/errors/4cb2ba6be88f4a25.
Report an issue: GitHub.