Skip to content
Back to main site

Azure AI Search

Create a local search service and index, upload documents, read them by key, and run wildcard, text, vector and suggestion searches.

Plan: Pro86 of 86 operations implemented across 2 APIs7Known differences

Set an explicit analyzer, such as standard.lucene, on searchable text fields and name them in searchFields: in Vera 1.2.0 preview, text searches on default fields failed with HTTP 500.

Example checked on Vera 1.2.2, 8 November 2026. Each coverage note names its own evidence and date.

Start Vera as in Get started, with your license key activated and the emulator started by the Vera launcher (Activate Pro). Then open Bash in a terminal of its own (on macOS, whose terminal starts zsh, type bash first), go to an empty scratch directory and run this; it needs curl and Python 3, and jq. It fetches the emulator's own certificate, so every request checks TLS, and defines data_request and data_arm, which this page's commands use. The bearer token vera-local is a dummy local credential, not your license key.

Terminal window
export VERA_CA_CERT="$PWD/vera-ca.pem"
curl --fail --silent --show-error --noproxy '*' --insecure \
https://localhost:8543/_vera/ca.pem --output "$VERA_CA_CERT"
curl --fail --silent --show-error --noproxy '*' \
--cacert "$VERA_CA_CERT" https://localhost:8543/_vera/health; echo
export VERA_CA="$VERA_CA_CERT"
export ARM='https://localhost:8543'
export SUB='00000000-0000-0000-0000-000000000001'
export TENANT='00000000-0000-0000-0000-0000000000a1'
export RG='azdata-rg'
export ROOT="/subscriptions/$SUB/resourceGroups/$RG"
export AUDIT_TMP="$(mktemp -d)"
56 more lines: show the full setup
# Every .localhost host name is connected to loopback, and TLS is verified.
# DATA_RESPONSE is replaced after each call: copy any IDs before the next one.
data_request() {
local method="$1" url="$2" host status
shift 2
case "$url" in
https://localhost:8543/*|https://*.localhost:8543/*) ;;
*) printf 'Refusing non-local URL: %s\n' "$url" >&2; return 1 ;;
esac
host="${url#https://}"
host="${host%%/*}"
host="${host%:8543}"
status=$(curl --noproxy '*' --silent --show-error \
--cacert "$VERA_CA" --resolve "$host:8543:127.0.0.1" \
-H 'Authorization: Bearer vera-local' \
-X "$method" "$url" "$@" \
-D "$AUDIT_TMP/headers" -o "$AUDIT_TMP/body" -w '%{http_code}') || return
DATA_RESPONSE=$(cat "$AUDIT_TMP/body")
printf 'HTTP %s\n%s\n' "$status" "$DATA_RESPONSE"
case "$status" in 2??) ;; *) return 1 ;; esac
}
# Polls the operation URL from the last successful management change, even
# after HTTP 200 or 201. Don't replace it with a fixed sleep.
data_wait_arm() {
local operation attempt status state delay
operation=$(awk 'BEGIN {IGNORECASE=1} tolower($1)=="azure-asyncoperation:" {gsub("\r", "", $2); print $2; exit}' "$AUDIT_TMP/headers")
if [ -z "$operation" ]; then
operation=$(awk 'tolower($1)=="location:" {gsub("\r", "", $2); print $2; exit}' "$AUDIT_TMP/headers")
fi
[ -z "$operation" ] && return 0
case "$operation" in "$ARM"/_vera/operations/*) ;; *) printf 'Inspect unexpected operation URL: %s\n' "$operation" >&2; return 1 ;; esac
for attempt in $(seq 1 60); do
data_request GET "$operation" || return
status=$(awk '/^HTTP\// {code=$2} END {print code}' "$AUDIT_TMP/headers")
state=$(printf '%s' "$DATA_RESPONSE" | jq -r '.status // empty' 2>/dev/null) || state=''
case "$state" in
Failed|Canceled|Cancelled) return 1 ;;
Succeeded) return 0 ;;
InProgress|Running|Accepted) ;;
*) [ "$status" != '202' ] && return 0 ;;
esac
delay=$(awk 'tolower($1)=="retry-after:" {gsub("\r", "", $2); print $2; exit}' "$AUDIT_TMP/headers")
case "$delay" in ''|*[!0-9]*) delay=1 ;; esac
sleep "$delay"
done
printf 'Operation did not finish within the polling limit\n' >&2
return 1
}
data_arm() {
local method="$1" path="$2"
shift 2
data_request "$method" "$ARM$path" "$@" || return
case "$method" in PUT|PATCH|POST|DELETE) data_wait_arm ;; esac
}

The health check answers {"cloud": "azure", "generation_status": "generated", "status": "ok"}. Requests go only to the emulator at https://localhost:8543: the helper refuses any other address, including the Azure-looking URLs some responses hold. When you've finished, close the terminal and delete the scratch directory; that removes only these local files, not what you created in the emulator.

The examples use the AI Search management API at 2026-11-01, its data API at 2026-04-01 and resource groups at 2025-04-01, the versions tested with this build: keep them as shown. Each goes in an api-version parameter.

Service management goes to https://localhost:8543. Indexes and documents go to the service’s own host name, azdatasearch.search.localhost, on the same port. The emulator finds the service by that name, so keep it in the URL. data_request gives curl a --resolve for it, which connects to 127.0.0.1 while keeping the name for routing and TLS, so the name doesn’t need to resolve on your machine. See data host names.

The data requests use the OData paths, such as indexes('azdata-index') and docs/search.post.search. The slash form, POST /indexes/azdata-index/docs/search, answered HTTP 404 when tried. The service’s Azure SKU, free, is an Azure pricing tier the emulator records. It doesn’t change Vera’s plan: AI Search needs Pro.

Create a search service and an index, upload two documents, read one by its key, search, and count the documents. The searches use "search": "*": this index leaves its searchable field’s analyzer unset, and a text search on it answered HTTP 500 in testing of Vera 1.2.0 preview (see Limitations). Text, vector and suggestion search then uses an index with an explicit analyzer, where text search works. Clean up deletes the service at the end.

Create the resource group the examples share, then the service, and read the service. data_arm prints each response, then polls any operation until it has finished (long-running operations):

Terminal window
data_arm PUT "$ROOT?api-version=2025-04-01" \
-H 'Content-Type: application/json' --data '{"location":"eastus"}'
SEARCH="$ROOT/providers/Microsoft.Search/searchServices/azdatasearch"
SRCH='https://azdatasearch.search.localhost:8543'
data_arm PUT "$SEARCH?api-version=2026-11-01" -H 'Content-Type: application/json' \
--data '{"location":"eastus","sku":{"name":"free"},"properties":{"replicaCount":1,"partitionCount":1}}'
data_arm GET "$SEARCH?api-version=2026-11-01"

The create answers HTTP 201, and the GET HTTP 200 with the service’s local endpoint in its properties. Now create an index with a key field and a searchable field, upload two documents and read the first by its key:

Terminal window
data_request PUT "$SRCH/indexes('azdata-index')?api-version=2026-04-01" \
-H 'Content-Type: application/json' -H 'Prefer: return=representation' \
--data '{"name":"azdata-index","fields":[{"name":"id","type":"Edm.String","key":true,"filterable":true},{"name":"message","type":"Edm.String","searchable":true}]}'
data_request GET "$SRCH/indexes('azdata-index')?api-version=2026-04-01"
data_request POST "$SRCH/indexes('azdata-index')/docs/search.index?api-version=2026-04-01" \
-H 'Content-Type: application/json' \
--data '{"value":[{"@search.action":"upload","id":"1","message":"hello vera"},{"@search.action":"upload","id":"2","message":"goodbye cosmos"}]}'
data_request GET "$SRCH/indexes('azdata-index')/docs('1')?api-version=2026-04-01"

The index answers HTTP 201 and its GET HTTP 200. The upload answers HTTP 200 with a result for each document, each with status set to true and statusCode to 201. The read answers HTTP 200 with the document:

Output
{ "id": "1", "message": "hello vera" }

Search all documents with a count, search with a filter on id, and count the documents:

Terminal window
data_request POST "$SRCH/indexes('azdata-index')/docs/search.post.search?api-version=2026-04-01" \
-H 'Content-Type: application/json' --data '{"search":"*","count":true}'
data_request POST "$SRCH/indexes('azdata-index')/docs/search.post.search?api-version=2026-04-01" \
-H 'Content-Type: application/json' --data '{"search":"*","filter":"id eq '\''1'\''","count":true}'
data_request GET "$SRCH/indexes('azdata-index')/docs/\$count?api-version=2026-04-01"

The first search returns both documents with @odata.count set to 2, and $count returns 2. The filtered search returns document 1 alone; these are its selected fields:

Output (selected fields)
{
"@odata.count": 1,
"value": [{ "id": "1", "message": "hello vera" }]
}

This recipe uses the same service and a second index, which sets an explicit analyzer: the searchable text field uses standard.lucene, the key id isn’t searchable, and each text search names text in searchFields. The index also has a vector field with two dimensions, embedding, with an exhaustive KNN profile, and a suggester, sugg, on text.

Create the index and upload two documents, each with its own embedding:

Terminal window
data_request POST "$SRCH/indexes?api-version=2026-04-01" \
-H 'Content-Type: application/json' --data '{
"name":"verified-search",
"fields":[
{"name":"id","type":"Edm.String","key":true,"searchable":false},
{"name":"text","type":"Edm.String","searchable":true,"analyzer":"standard.lucene"},
{"name":"embedding","type":"Collection(Edm.Single)","searchable":true,"dimensions":2,"vectorSearchProfile":"vp"}
],
"suggesters":[{"name":"sugg","searchMode":"analyzingInfixMatching","sourceFields":["text"]}],
"vectorSearch":{
"profiles":[{"name":"vp","algorithm":"va"}],
"algorithms":[{"name":"va","kind":"exhaustiveKnn","exhaustiveKnnParameters":{"metric":"cosine"}}]
}
}'
data_request POST "$SRCH/indexes('verified-search')/docs/search.index?api-version=2026-04-01" \
-H 'Content-Type: application/json' --data '{"value":[
{"@search.action":"upload","id":"1","text":"hello vera","embedding":[1,0]},
{"@search.action":"upload","id":"2","text":"goodbye cosmos","embedding":[0,1]}
]}'

Creating the index answered HTTP 201. Now search for hello by POST and by GET, then ask for suggestions and autocompletion for hel:

Terminal window
data_request POST "$SRCH/indexes('verified-search')/docs/search.post.search?api-version=2026-04-01" \
-H 'Content-Type: application/json' --data '{"search":"hello","searchFields":"text","count":true}'
data_request GET "$SRCH/indexes('verified-search')/docs?api-version=2026-04-01&search=hello&searchFields=text&%24count=true"
data_request POST "$SRCH/indexes('verified-search')/docs/search.post.suggest?api-version=2026-04-01" \
-H 'Content-Type: application/json' --data '{"search":"hel","suggesterName":"sugg"}'
data_request POST "$SRCH/indexes('verified-search')/docs/search.post.autocomplete?api-version=2026-04-01" \
-H 'Content-Type: application/json' --data '{"search":"hel","suggesterName":"sugg"}'

Both text searches answered HTTP 200 with document 1 and a count of 1. The suggestion answered HTTP 200 with hello vera, and the autocompletion HTTP 200 with hello.

Run a vector query for the embedding [1,0], analyze Hello VERA with standard.lucene, then delete the index:

Terminal window
data_request POST "$SRCH/indexes('verified-search')/docs/search.post.search?api-version=2026-04-01" \
-H 'Content-Type: application/json' --data '{"vectorQueries":[{"kind":"vector","vector":[1,0],"fields":"embedding","k":1}],"select":"id,text","count":true}'
data_request POST "$SRCH/indexes('verified-search')/search.analyze?api-version=2026-04-01" \
-H 'Content-Type: application/json' --data '{"text":"Hello VERA","analyzer":"standard.lucene"}'
data_request DELETE "$SRCH/indexes('verified-search')?api-version=2026-04-01"

The vector query answered HTTP 200 with document 1 and a count of 1. The analysis answered HTTP 200 with the tokens hello and vera, and deleting the index HTTP 204. These results come from the emulator’s local algorithms: they don’t show Azure’s learned ranking, and the vector query compares the embeddings you upload, so creating embeddings with an external model wasn’t shown.

Delete the index, then the service:

Terminal window
data_request DELETE "$SRCH/indexes('azdata-index')?api-version=2026-04-01"
data_arm DELETE "$SEARCH?api-version=2026-11-01"

Deleting the index answers HTTP 204 and the service HTTP 200. A GET of the service then answers HTTP 404. The resource group azdata-rg stays, since deleting a group fails in Vera 1.2.2: see deleting resource groups. Other pages’ examples reuse it. To remove it and anything else left over, start a fresh emulator: see Stop and start again.

  • Search services: a service with one replica and one partition created, read back with its local endpoint, listed in its resource group and deleted. A missing service answers HTTP 404.
  • Indexes: an index with a key field and a searchable field created, read and deleted.
  • Documents: documents uploaded in a batch with a result for each, read by key and counted with $count.
  • Wildcard search: "search": "*" returns every document, count adds @odata.count, and an OData filter such as id eq '1' narrows the results. A filter on a field that doesn’t exist answers HTTP 400 with InvalidRequest, Unknown filter field: no-such-field.
  • Text, vector and suggestion search: on an index with standard.lucene on its searchable field, text searches by POST and GET, suggestions, autocompletion, a vector query with supplied embeddings and text analysis each answer HTTP 200. See Text, vector and suggestion search.
  • Not run as examples: semantic search, scoring and ranking, synonym maps, aliases, indexers, data sources, skillsets, knowledge retrieval, and API keys. The API coverage marks these from a review of Vera 1.2.0’s source, with their limits in the notes.

The main limits are below. A few more apply to every service, and the API coverage notes cover smaller differences.

  • Text search needs an explicit analyzer. Set an explicit analyzer on searchable text fields and use searchFields to select them, as the recipe does; it also marks its key, id, as not searchable. The default field definitions leave the analyzer unset, and text searches can then fail with HTTP 500. In Vera 1.2.0 preview, with this page’s first index, a search for hello by POST or GET answered HTTP 500 with InternalServerError and an AttributeError, as did a search for unicorn and a POST with version 2024-07-01. The tested standard.lucene configuration supports text, suggestion and autocomplete queries; vector queries use the numeric embeddings you supply.
  • Use the OData paths shown. The slash form, POST /indexes/azdata-index/docs/search with version 2024-07-01, answered HTTP 404 with No modeled operation matches this request.
  • Index lists ignore $select. Indexes_ListWithSelectedProperties is answered by the plain index list: on Vera 1.2.0-rc.3, a GET of /indexes with $select=name returned full index definitions, not only the names.
  • Indexers don’t ingest data. Indexer, data source and skillset definitions are stored locally, and data isn’t fetched through external connectors. On Vera 1.2.0-rc.3, creating an indexer over a Blob data source succeeded and Indexers_Run answered HTTP 202, but the run reported transientFailure: The datasource connector has no locally available source records. A skillset needs an enrichment adapter that isn’t available.
  • Knowledge retrieval is local. KnowledgeRetrieval_Retrieve uses local lexical matching over the search data held locally. Remote planning, connectors and language-model synthesis aren’t available, and a failed source activity can give HTTP 206 with partial results. Knowledge sources are stored definitions, and their synchronization status follows local indexer history, not external ingestion.
  • Only the requests on this page were run. The features under Not run as examples above, and requests authorized with API keys rather than the dummy token, weren’t run.

Every operation of the APIs on this page, from their pinned public definitions, and whether Vera 1.2.0 implements it. Only the API surfaces in this release are listed, and each operation once. Implementation availability was reviewed against the Vera 1.2.0 source on 6 November 2026. Source inspection identifies a local implementation and its known limits; it doesn't mean every operation or API version was tested with a request. Each note names its evidence: a Local observation without a build or date is from Vera 1.2.0 preview, on 5 November 2026, and one from a later build, such as Vera 1.2.0-rc.3 or Vera 1.2.2, names that build and its date. No response was compared with Azure's. What the statuses mean

AI Search management 2026-11-01Plan: Pro

28 of 28 implemented

Version 2026-11-01, from the Azure REST API specifications at commit 21bbf1b.

AdminKeys

2 of 2 implemented
OperationStatusNotes
AdminKeys_GetImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
AdminKeys_RegenerateImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.

NetworkSecurityPerimeterConfigurations

3 of 3 implemented
OperationStatusNotes
NetworkSecurityPerimeterConfigurations_GetImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
NetworkSecurityPerimeterConfigurations_ListByServiceImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
NetworkSecurityPerimeterConfigurations_ReconcileImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.

Operations

1 of 1 implemented
OperationStatusNotes
Operations_ListImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.

PrivateEndpointConnections

4 of 4 implemented
OperationStatusNotes
PrivateEndpointConnections_DeleteImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
PrivateEndpointConnections_GetImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
PrivateEndpointConnections_ListByServiceImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
PrivateEndpointConnections_UpdateImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.

PrivateLinkResources

1 of 1 implemented
OperationStatusNotes
PrivateLinkResources_ListSupportedImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.

QueryKeys

3 of 3 implemented
OperationStatusNotes
QueryKeys_CreateImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
QueryKeys_DeleteImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
QueryKeys_ListBySearchServiceImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.

Services

8 of 8 implemented
OperationStatusNotes
Services_CheckNameAvailabilityImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
Services_CreateOrUpdateImplementedLocal observation: Created a search service with one replica and one partition (HTTP 201).
Services_DeleteImplementedLocal observation: Deleted the service (HTTP 200); a GET then answered HTTP 404.
Services_GetImplementedLocal observation: Returned the service with its local endpoint (HTTP 200). A missing service, and the service after deletion, answered HTTP 404.
Services_ListByResourceGroupImplementedLocal observation: Listed the resource group's services (HTTP 200).
Services_ListBySubscriptionImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
Services_UpdateImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
Services_UpgradeImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.

SharedPrivateLinkResources

4 of 4 implemented
OperationStatusNotes
SharedPrivateLinkResources_CreateOrUpdateImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
SharedPrivateLinkResources_DeleteImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
SharedPrivateLinkResources_GetImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
SharedPrivateLinkResources_ListByServiceImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.

Usages

1 of 1 implemented
OperationStatusNotes
Usages_ListBySubscriptionImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.

search_arm

1 of 1 implemented
OperationStatusNotes
UsageBySubscriptionSkuImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.

AI Search data 2026-04-01Plan: Pro

58 of 58 implemented · 7 known differences

Version 2026-04-01, from the Azure REST API specifications at commit 21bbf1b.

Aliases

5 of 5 implemented
OperationStatusNotes
Aliases_CreateImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
Aliases_CreateOrUpdateImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
Aliases_DeleteImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
Aliases_GetImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
Aliases_ListImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.

DataSources

5 of 5 implemented
OperationStatusNotes
DataSources_CreateImplementedSource inspection: Stores the data source definition locally; indexers don't fetch data through external connectors. Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. Local observation: Vera 1.2.0-rc.3, 6 November 2026 — a Blob data source created through the API was accepted, but an indexer run over it reported transientFailure: The datasource connector has no locally available source records.
DataSources_CreateOrUpdateImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
DataSources_DeleteImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
DataSources_GetImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
DataSources_ListImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.

Documents

9 of 9 implemented · 2 known differences
OperationStatusNotes
Documents_AutocompleteGetImplementedSource inspection: Suggests or autocompletes with local token, prefix and fuzzy matching. An explicit standard.lucene analyzer on the source fields avoids the failure seen when default field definitions leave the analyzer unset. Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
Documents_AutocompletePostImplementedSource inspection: Suggests or autocompletes with local token, prefix and fuzzy matching. An explicit standard.lucene analyzer on the source fields avoids the failure seen when default field definitions leave the analyzer unset. Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. Local observation: Vera 1.2.0-rc.3, 6 November 2026 — with standard.lucene on the source field, {"search":"hel","suggesterName":"sugg"} returned HTTP 200: suggest gave hello vera and autocomplete hello.
Documents_CountImplementedLocal observation: Returned 2 for two uploaded documents (HTTP 200).
Documents_GetImplementedLocal observation: Returned a document by its key, {"id":"1","message":"hello vera"} (HTTP 200).
Documents_IndexImplementedLocal observation: Uploaded two documents (HTTP 200), with each result's status true and statusCode 201.
Documents_SearchGetKnown differenceSource inspection: Text search by GET works when the text field sets standard.lucene, id isn't searchable and searchFields names the field. With default field definitions, which leave the analyzer unset, it answers HTTP 500 with an AttributeError. Local observation: Vera 1.2.0-rc.3, 6 November 2026 — on an index with standard.lucene on its text field, a GET with search=hello&searchFields=text&$count=true returned HTTP 200 with document 1 and a count of 1.
Documents_SearchPostKnown differenceSource inspection: Wildcard search, filters and counts work. Text search works when the text field sets standard.lucene, id isn't searchable and searchFields names the field; default field definitions make it answer HTTP 500. Vector queries use supplied numeric vectors; external embeddings and Azure's learned ranking aren't established. Local observation: Vera 1.2.0-rc.3, 6 November 2026 — on an index with standard.lucene on its text field, {"search":"hello","searchFields":"text","count":true} returned HTTP 200 with document 1 and a count of 1, and a vector query for [1,0] with k set to 1 returned HTTP 200 with document 1, the nearest match.
Documents_SuggestGetImplementedSource inspection: Suggests or autocompletes with local token, prefix and fuzzy matching. An explicit standard.lucene analyzer on the source fields avoids the failure seen when default field definitions leave the analyzer unset. Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
Documents_SuggestPostImplementedSource inspection: Suggests or autocompletes with local token, prefix and fuzzy matching. An explicit standard.lucene analyzer on the source fields avoids the failure seen when default field definitions leave the analyzer unset. Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. Local observation: Vera 1.2.0-rc.3, 6 November 2026 — with standard.lucene on the source field, {"search":"hel","suggesterName":"sugg"} returned HTTP 200: suggest gave hello vera and autocomplete hello.

Indexers

8 of 8 implemented · 3 known differences
OperationStatusNotes
Indexers_CreateKnown differenceSource inspection: Accepts indexer definitions and runs, but doesn't ingest from external connectors: a data source created through the API has no local records, so execution reports transientFailure. A skillset needs an enrichment adapter that isn't available. Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. Local observation: Vera 1.2.0-rc.3, 6 November 2026 — creating an indexer over a Blob data source succeeded and Run returned HTTP 202, but the execution reported transientFailure: The datasource connector has no locally available source records.
Indexers_CreateOrUpdateKnown differenceSource inspection: Accepts indexer definitions and runs, but doesn't ingest from external connectors: a data source created through the API has no local records, so execution reports transientFailure. A skillset needs an enrichment adapter that isn't available. Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
Indexers_DeleteImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
Indexers_GetImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
Indexers_GetStatusImplementedSource inspection: Reports the indexer's status from its local run history. Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. Local observation: Vera 1.2.0-rc.3, 6 November 2026 — after a run over a Blob data source created through the API, the status showed the execution as transientFailure: The datasource connector has no locally available source records.
Indexers_ListImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
Indexers_ResetImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
Indexers_RunKnown differenceSource inspection: Accepts indexer definitions and runs, but doesn't ingest from external connectors: a data source created through the API has no local records, so execution reports transientFailure. A skillset needs an enrichment adapter that isn't available. Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. Local observation: Vera 1.2.0-rc.3, 6 November 2026 — creating an indexer over a Blob data source succeeded and Run returned HTTP 202, but the execution reported transientFailure: The datasource connector has no locally available source records.

Indexes

8 of 8 implemented · 1 known difference
OperationStatusNotes
Indexes_AnalyzeImplementedSource inspection: Analyzes text with a local approximation of tokenizing and stemming, not the full Lucene or language analyzers. Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. Local observation: Vera 1.2.0-rc.3, 6 November 2026 — {"text":"Hello VERA","analyzer":"standard.lucene"} returned HTTP 200 with the tokens hello and vera.
Indexes_CreateImplementedSource inspection: Stores the index definition. A field's analyzer stays unset by default, which can make later text searches fail; setting standard.lucene on searchable text fields avoids that. Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. Local observation: Vera 1.2.0-rc.3, 6 November 2026 — an index with a standard.lucene text field, a two-dimension vector field, a suggester and an exhaustive KNN vector profile returned HTTP 201.
Indexes_CreateOrUpdateImplementedLocal observation: Created an index with a key field and a searchable field at indexes('azdata-index') (HTTP 201).
Indexes_DeleteImplementedLocal observation: Deleted the index (HTTP 204).
Indexes_GetImplementedLocal observation: Returned the index (HTTP 200).
Indexes_GetStatisticsImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
Indexes_ListImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
Indexes_ListWithSelectedPropertiesKnown differenceSource inspection: Requests are answered by Indexes_List, which ignores $select and returns full index definitions. Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. Local observation: Vera 1.2.0-rc.3, 6 November 2026 — a GET of /indexes with $select=name returned full index definitions, not only the names.

KnowledgeBases

5 of 5 implemented
OperationStatusNotes
KnowledgeBases_CreateImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
KnowledgeBases_CreateOrUpdateImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
KnowledgeBases_DeleteImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
KnowledgeBases_GetImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
KnowledgeBases_ListImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.

KnowledgeRetrieval

1 of 1 implemented · 1 known difference
OperationStatusNotes
KnowledgeRetrieval_RetrieveKnown differenceSource inspection: Retrieves with local lexical matching over the search data held locally; remote planning, connectors and language-model synthesis aren't available. Failed source activities can return HTTP 206 with partial results. Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.

KnowledgeSources

6 of 6 implemented
OperationStatusNotes
KnowledgeSources_CreateImplementedSource inspection: Stores knowledge source definitions and the local resources made for them. Synchronization status follows local indexer history, not successful external ingestion. Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
KnowledgeSources_CreateOrUpdateImplementedSource inspection: Stores knowledge source definitions and the local resources made for them. Synchronization status follows local indexer history, not successful external ingestion. Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
KnowledgeSources_DeleteImplementedSource inspection: Stores knowledge source definitions and the local resources made for them. Synchronization status follows local indexer history, not successful external ingestion. Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
KnowledgeSources_GetImplementedSource inspection: Stores knowledge source definitions and the local resources made for them. Synchronization status follows local indexer history, not successful external ingestion. Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
KnowledgeSources_GetStatusImplementedSource inspection: Stores knowledge source definitions and the local resources made for them. Synchronization status follows local indexer history, not successful external ingestion. Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
KnowledgeSources_ListImplementedSource inspection: Stores knowledge source definitions and the local resources made for them. Synchronization status follows local indexer history, not successful external ingestion. Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.

Skillsets

5 of 5 implemented
OperationStatusNotes
Skillsets_CreateImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
Skillsets_CreateOrUpdateImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
Skillsets_DeleteImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
Skillsets_GetImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
Skillsets_ListImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.

SynonymMaps

5 of 5 implemented
OperationStatusNotes
SynonymMaps_CreateImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
SynonymMaps_CreateOrUpdateImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
SynonymMaps_DeleteImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
SynonymMaps_GetImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.
SynonymMaps_ListImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.

search_data

1 of 1 implemented
OperationStatusNotes
GetServiceStatisticsImplementedSource inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established.