suo
Concepts

Index-time vs query-time settings

Which settings need a rebuild, and which apply to the next query.

An index has two kinds of settings, and the difference is what it costs to change one.

Index-time settings

These decide how content is turned into searchable tokens. Changing one means suo has to re-tokenize every record, so it builds the new index alongside the old one and swaps them atomically when it is ready — your search keeps working on the old settings until the swap.

SettingControls
searchableTiersWhich attributes are searchable, grouped into tiers by importance, each with its own typo tolerance
attributesForFacetingWhich attributes can be used as facets or filters
languagesThe languages suo tokenizes for (affects plural folding and stopwords)
dictionaryCustom terms — product names, brand words — protected from CJK segmentation
partitionKeyThe attribute that splits the index into partitions (set once, before writing)

Query-time settings

These apply to every query from the moment they are saved — no rebuild, because they only change how the same tokenized data is ranked or filtered.

SettingControls
customRankingA tie-breaking sort by attribute, applied after the ranking cascade
synonymsTwo-way and one-way term equivalences
pins / hidesForce a record to a fixed position, or remove it, for a specific query
typoToleranceWhether typo correction runs at all
ignorePluralsWhether cat and cats are treated as the same token
removeWordsIfNoResultsWhether trailing words are dropped from an empty query to find a broader match
distinctAttributeWhich attribute deduplicates hits (usually url, so a page's sections do not all appear)
queryLoggingWhether this index's queries are recorded for analytics

Setting them

PUT /1/indexes/docs/settings
{
	"queryTime": {
		"synonyms": [{ "id": "s1", "kind": "two-way", "terms": ["signup", "sign up"] }]
	}
}

You can send indexTime, queryTime, or both in one call. See Settings for the full shape and defaults.

Rule of thumb

If changing it should be instant and reversible from the dashboard's Relevance tab — a synonym, a pin, a ranking weight — it is query-time. If it changes what a record's tokens even are, it is index-time.

On this page