Skip to main content Skills Marketplace Descubre y explora habilidades de IA creadas por la comunidad.
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Copiar promptMostrar detalles del prompt Un comando directo omite el prompt de revisión. Revisa el origen antes de ejecutarlo.
npx skills add https://github.com/BEKO2210/Firstbrain --skill azure-search-documents-tsEl comando permanece en una sola línea. Desplázate horizontalmente para revisarlo antes de copiarlo.
¿Prefieres una copia local? Descarga los archivos que SkillsMP tiene disponibles ahora.
Descargar Zip Descargando... Ocupaciones relacionadas SOC
Basado en la clasificación ocupacional SOC
name azure-search-documents-ts description Build search applications with vector, hybrid, and semantic search capabilities. type skill created 2026-02-27T00:00:00.000Z domain cloud-infrastructure category azure risk unknown source community tags ["skill","cloud-infrastructure","azure","search","documents"]
Azure AI Search SDK for TypeScript
Build search applications with vector, hybrid, and semantic search capabilities.
Installation
npm install @azure/search-documents @azure/identity
Environment Variables
AZURE_SEARCH_ENDPOINT=https://<service-name>.search.windows.net
AZURE_SEARCH_INDEX_NAME=my-index
AZURE_SEARCH_ADMIN_KEY=<admin-key>
Authentication
import { SearchClient , SearchIndexClient } from "@azure/search-documents" ;
import { DefaultAzureCredential } from "@azure/identity" ;
const endpoint = process.env .AZURE_SEARCH_ENDPOINT !;
const indexName = process.env .AZURE_SEARCH_INDEX_NAME !;
const credential = new DefaultAzureCredential ();
const searchClient = new SearchClient (endpoint, indexName, credential);
const indexClient = new SearchIndexClient (endpoint, credential);
Core Workflow
Create Index with Vector Field
import { SearchIndex , SearchField , VectorSearch } from "@azure/search-documents" ;
const index : SearchIndex = {
name : ,
: [
{ : , : , : },
{ : , : , : },
{ : , : , : },
{ : , : , : , : },
{
: ,
: ,
: ,
: ,
: ,
},
],
: {
: [
{ : , : },
],
: [
{ : , : },
],
},
};
indexClient. (index);
"products"
fields
name
"id"
type
"Edm.String"
key
true
name
"title"
type
"Edm.String"
searchable
true
name
"description"
type
"Edm.String"
searchable
true
name
"category"
type
"Edm.String"
filterable
true
facetable
true
name
"embedding"
type
"Collection(Edm.Single)"
searchable
true
vectorSearchDimensions
1536
vectorSearchProfileName
"vector-profile"
vectorSearch
algorithms
name
"hnsw-algorithm"
kind
"hnsw"
profiles
name
"vector-profile"
algorithmConfigurationName
"hnsw-algorithm"
await
createOrUpdateIndex
Index Documents const documents = [
{ id : "1" , title : "Widget" , description : "A useful widget" , category : "Tools" , embedding : [...] },
{ id : "2" , title : "Gadget" , description : "A cool gadget" , category : "Electronics" , embedding : [...] },
];
const result = await searchClient.uploadDocuments (documents);
console .log (`Indexed ${result.results.length} documents` );
Full-Text Search const results = await searchClient.search ("widget" , {
select : ["id" , "title" , "description" ],
filter : "category eq 'Tools'" ,
orderBy : ["title asc" ],
top : 10 ,
});
for await (const result of results.results ) {
console .log (`${result.document .title} : ${result.score} ` );
}
Vector Search const queryVector = await getEmbedding ("useful tool" );
const results = await searchClient.search ("*" , {
vectorSearchOptions : {
queries : [
{
kind : "vector" ,
vector : queryVector,
fields : ["embedding" ],
kNearestNeighborsCount : 10 ,
},
],
},
select : ["id" , "title" , "description" ],
});
for await (const result of results.results ) {
console .log (`${result.document .title} : ${result.score} ` );
}
Hybrid Search (Text + Vector) const queryVector = await getEmbedding ("useful tool" );
const results = await searchClient.search ("tool" , {
vectorSearchOptions : {
queries : [
{
kind : "vector" ,
vector : queryVector,
fields : ["embedding" ],
kNearestNeighborsCount : 50 ,
},
],
},
select : ["id" , "title" , "description" ],
top : 10 ,
});
Semantic Search
const index : SearchIndex = {
name : "products" ,
fields : [...],
semanticSearch : {
configurations : [
{
name : "semantic-config" ,
prioritizedFields : {
titleField : { name : "title" },
contentFields : [{ name : "description" }],
},
},
],
},
};
const results = await searchClient.search ("best tool for the job" , {
queryType : "semantic" ,
semanticSearchOptions : {
configurationName : "semantic-config" ,
captions : { captionType : "extractive" },
answers : { answerType : "extractive" , count : 3 },
},
select : ["id" , "title" , "description" ],
});
for await (const result of results.results ) {
console .log (`${result.document .title} ` );
console .log (` Caption: ${result.captions?.[0 ]?.text} ` );
console .log (` Reranker Score: ${result.rerankerScore} ` );
}
Filtering and Facets
const results = await searchClient.search ("*" , {
filter : "category eq 'Electronics' and price lt 100" ,
facets : ["category,count:10" , "brand" ],
});
for (const [facetName, facetResults] of Object .entries (results.facets || {})) {
console .log (`${facetName} :` );
for (const facet of facetResults) {
console .log (` ${facet.value} : ${facet.count} ` );
}
}
Autocomplete and Suggestions
const index : SearchIndex = {
name : "products" ,
fields : [...],
suggesters : [
{ name : "sg" , sourceFields : ["title" , "description" ] },
],
};
const autocomplete = await searchClient.autocomplete ("wid" , "sg" , {
mode : "twoTerms" ,
top : 5 ,
});
const suggestions = await searchClient.suggest ("wid" , "sg" , {
select : ["title" ],
top : 5 ,
});
Batch Operations
const batch = [
{ upload : { id : "1" , title : "New Item" } },
{ merge : { id : "2" , title : "Updated Title" } },
{ delete : { id : "3" } },
];
const result = await searchClient.indexDocuments ({ actions : batch });
Key Types import {
SearchClient ,
SearchIndexClient ,
SearchIndexerClient ,
SearchIndex ,
SearchField ,
SearchOptions ,
VectorSearch ,
SemanticSearch ,
SearchIterator ,
} from "@azure/search-documents" ;
Best Practices
Use hybrid search - Combine vector + text for best results
Enable semantic ranking - Improves relevance for natural language queries
Batch document uploads - Use uploadDocuments with arrays, not single docs
Use filters for security - Implement document-level security with filters
Index incrementally - Use mergeOrUploadDocuments for updates
Monitor query performance - Use includeTotalCount: true sparingly in production
When to Use This skill is applicable to execute the workflow or actions described in the overview.
Connections
Domain: [[Cloud & Infrastruktur]]
Kategorie: [[Microsoft Azure]]
Navigation: [[Skills Uebersicht]], [[Home]]