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.
Connect
Section titled “Connect”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.
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.
Example
Section titled “Example”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):
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:
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:
{ "id": "1", "message": "hello vera" }Search all documents with a count, search with a filter on id, and count the documents:
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:
{ "@odata.count": 1, "value": [{ "id": "1", "message": "hello vera" }]}Text, vector and suggestion search
Section titled “Text, vector and suggestion search”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:
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:
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:
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.
Clean up
Section titled “Clean up”Delete the index, then the service:
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.
Supported features
Section titled “Supported features”- 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,countadds@odata.count, and an ODatafiltersuch asid eq '1'narrows the results. A filter on a field that doesn’t exist answersHTTP 400withInvalidRequest,Unknown filter field: no-such-field. - Text, vector and suggestion search: on an index with
standard.luceneon its searchable field, text searches by POST and GET, suggestions, autocompletion, a vector query with supplied embeddings and text analysis each answerHTTP 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.
Limitations
Section titled “Limitations”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
searchFieldsto 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 withHTTP 500. In Vera 1.2.0 preview, with this page’s first index, a search forhelloby POST or GET answeredHTTP 500withInternalServerErrorand anAttributeError, as did a search forunicornand a POST with version2024-07-01. The testedstandard.luceneconfiguration 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/searchwith version2024-07-01, answeredHTTP 404withNo modeled operation matches this request. - Index lists ignore
$select.Indexes_ListWithSelectedPropertiesis answered by the plain index list: on Vera 1.2.0-rc.3, a GET of/indexeswith$select=namereturned 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_RunansweredHTTP 202, but the run reportedtransientFailure:The datasource connector has no locally available source records. A skillset needs an enrichment adapter that isn’t available. - Knowledge retrieval is local.
KnowledgeRetrieval_Retrieveuses 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 giveHTTP 206with 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.
API coverage
Section titled “API coverage”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
No resource or operation matches .
Try part of a name, such as AdminKeys_Get, or .
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
| Operation | Status | Notes |
|---|---|---|
| Admin | Implemented | Source inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. |
| Admin | Implemented | Source 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
| Operation | Status | Notes |
|---|---|---|
| Network | Implemented | Source inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. |
| Network | Implemented | Source inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. |
| Network | Implemented | Source 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
| Operation | Status | Notes |
|---|---|---|
| Operations_List | Implemented | Source 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
| Operation | Status | Notes |
|---|---|---|
| Private | Implemented | Source inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. |
| Private | Implemented | Source inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. |
| Private | Implemented | Source inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. |
| Private | Implemented | Source 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
| Operation | Status | Notes |
|---|---|---|
| Private | Implemented | Source 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
| Operation | Status | Notes |
|---|---|---|
| Query | Implemented | Source inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. |
| Query | Implemented | Source inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. |
| Query | Implemented | Source 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
| Operation | Status | Notes |
|---|---|---|
| Services_Check | Implemented | Source inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. |
| Services_Create | Implemented | Local observation: Created a search service with one replica and one partition (HTTP 201). |
| Services_Delete | Implemented | Local observation: Deleted the service (HTTP 200); a GET then answered HTTP 404. |
| Services_Get | Implemented | Local observation: Returned the service with its local endpoint (HTTP 200). A missing service, and the service after deletion, answered HTTP 404. |
| Services_List | Implemented | Local observation: Listed the resource group's services (HTTP 200). |
| Services_List | Implemented | Source inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. |
| Services_Update | Implemented | Source inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. |
| Services_Upgrade | Implemented | Source 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
| Operation | Status | Notes |
|---|---|---|
| Shared | Implemented | Source inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. |
| Shared | Implemented | Source inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. |
| Shared | Implemented | Source inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. |
| Shared | Implemented | Source 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
| Operation | Status | Notes |
|---|---|---|
| Usages_List | Implemented | Source 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
| Operation | Status | Notes |
|---|---|---|
| Usage | Implemented | Source 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
| Operation | Status | Notes |
|---|---|---|
| Aliases_Create | Implemented | Source inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. |
| Aliases_Create | Implemented | Source inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. |
| Aliases_Delete | Implemented | Source inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. |
| Aliases_Get | Implemented | Source inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. |
| Aliases_List | Implemented | Source 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
| Operation | Status | Notes |
|---|---|---|
| Data | Implemented | Source 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. |
| Data | Implemented | Source inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. |
| Data | Implemented | Source inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. |
| Data | Implemented | Source inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. |
| Data | Implemented | Source 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
| Operation | Status | Notes |
|---|---|---|
| Documents_Autocomplete | Implemented | Source 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_Autocomplete | Implemented | Source 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_Count | Implemented | Local observation: Returned 2 for two uploaded documents (HTTP 200). |
| Documents_Get | Implemented | Local observation: Returned a document by its key, {"id":"1","message":"hello vera"} (HTTP 200). |
| Documents_Index | Implemented | Local observation: Uploaded two documents (HTTP 200), with each result's status true and statusCode 201. |
| Documents_Search | Known difference | Source 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_Search | Known difference | Source 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_Suggest | Implemented | Source 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_Suggest | Implemented | Source 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
| Operation | Status | Notes |
|---|---|---|
| Indexers_Create | Known difference | Source 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_Create | Known difference | Source 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_Delete | Implemented | Source inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. |
| Indexers_Get | Implemented | Source inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. |
| Indexers_Get | Implemented | Source 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_List | Implemented | Source inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. |
| Indexers_Reset | Implemented | Source inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. |
| Indexers_Run | Known difference | Source 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
| Operation | Status | Notes |
|---|---|---|
| Indexes_Analyze | Implemented | Source 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_Create | Implemented | Source 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_Create | Implemented | Local observation: Created an index with a key field and a searchable field at indexes('azdata-index') (HTTP 201). |
| Indexes_Delete | Implemented | Local observation: Deleted the index (HTTP 204). |
| Indexes_Get | Implemented | Local observation: Returned the index (HTTP 200). |
| Indexes_Get | Implemented | Source inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. |
| Indexes_List | Implemented | Source inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. |
| Indexes_List | Known difference | Source 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 / with $select=name returned full index definitions, not only the names. |
KnowledgeBases
5 of 5 implemented
| Operation | Status | Notes |
|---|---|---|
| Knowledge | Implemented | Source inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. |
| Knowledge | Implemented | Source inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. |
| Knowledge | Implemented | Source inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. |
| Knowledge | Implemented | Source inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. |
| Knowledge | Implemented | Source 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
| Operation | Status | Notes |
|---|---|---|
| Knowledge | Known difference | Source 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
| Operation | Status | Notes |
|---|---|---|
| Knowledge | Implemented | Source 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. |
| Knowledge | Implemented | Source 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. |
| Knowledge | Implemented | Source 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. |
| Knowledge | Implemented | Source 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. |
| Knowledge | Implemented | Source 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. |
| Knowledge | Implemented | Source 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
| Operation | Status | Notes |
|---|---|---|
| Skillsets_Create | Implemented | Source inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. |
| Skillsets_Create | Implemented | Source inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. |
| Skillsets_Delete | Implemented | Source inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. |
| Skillsets_Get | Implemented | Source inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. |
| Skillsets_List | Implemented | Source 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
| Operation | Status | Notes |
|---|---|---|
| Synonym | Implemented | Source inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. |
| Synonym | Implemented | Source inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. |
| Synonym | Implemented | Source inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. |
| Synonym | Implemented | Source inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. |
| Synonym | Implemented | Source 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
| Operation | Status | Notes |
|---|---|---|
| Get | Implemented | Source inspection: Local search records and algorithms; remote embeddings, semantic reranking, external ingestion and enrichment, and ranking that matches Azure's aren't established. |