CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/pypi-algoliasearch

A fully-featured and blazing-fast Python API client to interact with Algolia's search-as-a-service platform.

Pending

Quality

Pending

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

Overview
Eval results
Files

query-suggestions.mddocs/

Query Suggestions

Intelligent query completion and suggestion services that help users discover relevant search terms and improve search experience. Build autocomplete functionality and query enhancement features.

Capabilities

Query Suggestions Client

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: ...

Configuration Management

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
    """

Status and Logs

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
    """

Usage Example

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)}")

Types

# 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: str

Query Suggestion Features

Query suggestions help improve search experience through:

  • Autocomplete: Real-time query completion as users type
  • Popular Suggestions: Based on frequently searched terms
  • Facet-based Suggestions: Suggest queries including popular facet values
  • Multi-language Support: Suggestions in multiple languages
  • Custom Exclusions: Filter out unwanted suggestion terms
  • Analytics Integration: Track suggestion performance and usage

Install with Tessl CLI

npx tessl i tessl/pypi-algoliasearch

docs

ab-testing.md

analytics-insights.md

data-ingestion.md

index.md

monitoring-management.md

query-suggestions.md

recommendations.md

search-operations.md

tile.json