Skip to main content
The queryType parameter controls if and how Algolia considers matches at the beginning of query words. For more information, see Prefix searching.

Options

prefixLast
Only the last word in the query is treated as a prefix.
All preceding words must match in full.
prefixAll
All words in the query are treated as prefixes.
With prefixAll, removeStopWords has no effect: stop words are never removed from words interpreted as prefixes, and prefixAll treats every word as a prefix.
prefixNone
Prefix search is turned off. All query words must match completely.

Example

Current API clients

var response = await client.SetSettingsAsync(
  "INDEX_NAME",
  new IndexSettings { QueryType = Enum.Parse<QueryType>("PrefixLast") }
);
final response = await client.setSettings(
  indexName: "INDEX_NAME",
  indexSettings: IndexSettings(
    queryType: QueryType.fromJson("prefixLast"),
  ),
);
response, err := client.SetSettings(client.NewApiSetSettingsRequest(
  "INDEX_NAME",
  search.NewEmptyIndexSettings().SetQueryType(search.QueryType("prefixLast"))))
if err != nil {
  // handle the eventual error
  panic(err)
}
UpdatedAtResponse response = client.setSettings("INDEX_NAME", new IndexSettings().setQueryType(QueryType.PREFIX_LAST));
const response = await client.setSettings({ indexName: 'theIndexName', indexSettings: { queryType: 'prefixLast' } });
var response =
  client.setSettings(
    indexName = "INDEX_NAME",
    indexSettings =
      IndexSettings(queryType = QueryType.entries.first { it.value == "prefixLast" }),
  )
$response = $client->setSettings(
    'INDEX_NAME',
    ['queryType' => 'prefixLast',
    ],
);
response = client.set_settings(
    index_name="INDEX_NAME",
    index_settings={
        "queryType": "prefixLast",
    },
)
response = client.set_settings("INDEX_NAME", Algolia::Search::IndexSettings.new(query_type: "prefixLast"))
val response = Await.result(
  client.setSettings(
    indexName = "INDEX_NAME",
    indexSettings = IndexSettings(
      queryType = Some(QueryType.withName("prefixLast"))
    )
  ),
  Duration(100, "sec")
)
let response = try await client.setSettings(
    indexName: "INDEX_NAME",
    indexSettings: IndexSettings(queryType: SearchQueryType.prefixLast)
)
IndexSettings settings = new IndexSettings();
settings.QueryType = "prefixLast";
// settings.QueryType = "prefixAll";
// settings.QueryType = "prefixNone";

index.SetSettings(settings);
res, err := index.SetSettings(search.Settings{
	QueryType: opt.QueryType(
		"prefixLast",
		// "prefixAll",
		// "prefixNone",
	),
})
index.setSettings(
  new IndexSettings().setQueryType("prefixLast")
  // new IndexSettings().setQueryType("prefixAll")
  // new IndexSettings().setQueryType("prefixNone")
);
index
  .setSettings({
    queryType: "prefixLast",
    // queryType: 'prefixAll'
    // queryType: 'prefixNone'
  })
  .then(() => {
    // done
  });
val settings = settings {
    queryType = QueryType.PrefixLast
    // queryType = QueryType.PrefixAll
    // queryType = QueryType.PrefixNone
}

index.setSettings(settings)
$index->setSettings([
  'queryType' => 'prefixLast'
  // 'queryType' => 'prefixAll'
  // 'queryType' => 'prefixNone'
]);
index.set_settings(
    {
        "queryType": "prefixLast"
        # 'queryType': 'prefixAll'
        # 'queryType': 'prefixNone'
    }
)
index.set_settings(
  {
    queryType: "prefixLast"
    # queryType: 'prefixAll'
    # queryType: 'prefixNone'
  }
)
client.execute {
  setSettings of "myIndex" `with` IndexSettings(
    queryType = Some(QueryType.prefixLast)
    // queryType = Some(QueryType.prefixAll)
    // queryType = Some(QueryType.prefixNone)
  )
}
let settings = Settings()
  .set(\.queryType, to: .prefixLast)
  //.set(\.queryType, to: .prefixAll)
  //.set(\.queryType, to: .prefixNone)

index.setSettings(settings) { result in
  if case .success(let response) = result {
    print("Response: \(response)")
  }
}
Last modified on June 24, 2026