# coding: utf-8

"""
Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
"""
from __future__ import annotations

from enum import Enum
from json import loads
from typing import Self


class ExactOnSingleWordQuery(str, Enum):
    """
    Determines how the [Exact ranking criterion](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/override-search-engine-defaults/in-depth/adjust-exact-settings/#turn-off-exact-for-some-attributes) is computed when the search query has only one word.  <dl> <dt><code>attribute</code></dt> <dd> The Exact ranking criterion is 1 if the query word and attribute value are the same. For example, a search for \"road\" will match the value \"road\", but not \"road trip\". </dd> <dt><code>none</code></dt> <dd> The Exact ranking criterion is ignored on single-word searches. </dd> <dt><code>word</code></dt> <dd> The Exact ranking criterion is 1 if the query word is found in the attribute value. The query word must have at least 3 characters and must not be a stop word. </dd> </dl>  If `exactOnSingleWordQuery` is `word`, only exact matches will be highlighted, partial and prefix matches won't.
    """

    """
    allowed enum values
    """
    ATTRIBUTE = "attribute"
    NONE = "none"
    WORD = "word"

    @classmethod
    def from_json(cls, json_str: str) -> Self:
        """Create an instance of ExactOnSingleWordQuery from a JSON string"""
        return cls(loads(json_str))
