A fully-featured and blazing-fast Python API client to interact with Algolia's search-as-a-service platform.
—
Quality
Pending
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Intelligent query completion and suggestion services that help users discover relevant search terms and improve search experience. Build autocomplete functionality and query enhancement features.
class QuerySuggestionsClient:
def __init__(
self,
app_id: Optional[str] = None,
api_key: Optional[str] = None,
transporter: Optional[Transporter] = None,
config: Optional[QuerySuggestionsConfig] = None
) -> None: ...
async def close(self) -> None: ...
async def set_client_api_key(self, api_key: str) -> None: ...Manage query suggestion configurations and settings.
async def list_configs(
self,
request_options: Optional[Union[dict, RequestOptions]] = None
) -> ListConfigsResponse:
"""
List all query suggestion configurations.
Returns:
ListConfigsResponse with all configurations
"""
async def create_config(
self,
configuration_with_index: Union[ConfigurationWithIndex, dict],
request_options: Optional[Union[dict, RequestOptions]] = None
) -> BaseResponse:
"""
Create a new query suggestion configuration.
Parameters:
- configuration_with_index: Configuration settings with target index
- request_options: Additional request options
Returns:
BaseResponse with creation confirmation
"""
async def get_config(
self,
index_name: str,
request_options: Optional[Union[dict, RequestOptions]] = None
) -> Configuration:
"""
Get query suggestion configuration for an index.
Parameters:
- index_name: Target index name
- request_options: Additional request options
Returns:
Configuration object with current settings
"""
async def update_config(
self,
index_name: str,
configuration: Union[Configuration, dict],
request_options: Optional[Union[dict, RequestOptions]] = None
) -> BaseResponse:
"""
Update query suggestion configuration.
Parameters:
- index_name: Target index name
- configuration: Updated configuration settings
- request_options: Additional request options
Returns:
BaseResponse with update confirmation
"""
async def delete_config(
self,
index_name: str,
request_options: Optional[Union[dict, RequestOptions]] = None
) -> BaseResponse:
"""
Delete query suggestion configuration.
Parameters:
- index_name: Target index name
- request_options: Additional request options
Returns:
BaseResponse with deletion confirmation
"""Monitor query suggestion operations and troubleshoot issues.
async def get_config_status(
self,
index_name: str,
request_options: Optional[Union[dict, RequestOptions]] = None
) -> GetConfigStatusResponse:
"""
Get status of query suggestion configuration.
Parameters:
- index_name: Target index name
- request_options: Additional request options
Returns:
GetConfigStatusResponse with current status
"""
async def get_log_file(
self,
index_name: str,
request_options: Optional[Union[dict, RequestOptions]] = None
) -> LogFile:
"""
Get log file for query suggestion operations.
Parameters:
- index_name: Target index name
- request_options: Additional request options
Returns:
LogFile with operation logs
"""from algoliasearch.query_suggestions.client import QuerySuggestionsClient
# Initialize client
client = QuerySuggestionsClient("YOUR_APP_ID", "YOUR_API_KEY")
# Create query suggestions configuration
config_response = await client.create_config({
"indexName": "query_suggestions_index",
"sourceIndices": [
{
"indexName": "products",
"facets": [
{"attribute": "category", "amount": 5},
{"attribute": "brand", "amount": 3}
],
"minHits": 5,
"minLetters": 2
}
],
"languages": ["en", "fr"],
"exclude": ["admin", "test"]
})
# Check configuration status
status = await client.get_config_status("query_suggestions_index")
print(f"Configuration status: {status.index_status}")
# Get current configuration
config = await client.get_config("query_suggestions_index")
print(f"Languages: {config.languages}")
print(f"Source indices: {len(config.source_indices)}")# Configuration types
class ConfigurationWithIndex(BaseModel):
index_name: str
source_indices: List[SourceIndex]
languages: List[str]
exclude: Optional[List[str]] = None
class Configuration(BaseModel):
source_indices: List[SourceIndex]
languages: List[str]
exclude: Optional[List[str]] = None
class SourceIndex(BaseModel):
index_name: str
facets: Optional[List[Facet]] = None
min_hits: Optional[int] = None
min_letters: Optional[int] = None
generate: Optional[List[List[str]]] = None
class Facet(BaseModel):
attribute: str
amount: Optional[int] = None
# Response types
class ListConfigsResponse(BaseModel):
configs: List[dict]
class GetConfigStatusResponse(BaseModel):
index_name: str
index_status: str
last_build_time_s: Optional[int] = None
last_successful_build_started_at: Optional[str] = None
class BaseResponse(BaseModel):
status: int
message: str
class LogFile(BaseModel):
content: str
timestamp: strQuery suggestions help improve search experience through:
Install with Tessl CLI
npx tessl i tessl/pypi-algoliasearch