Skip to main content سوق المهارات اكتشف واستكشف مهارات الذكاء الاصطناعي التي بناها المجتمع.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
نسخ Promptعرض تفاصيل Prompt يتجاوز الأمر المباشر Prompt المخصّص للمراجعة. افحص المصدر قبل تشغيله.
npx skills add https://github.com/BEKO2210/Firstbrain --skill azure-search-documents-tsيبقى الأمر في سطر واحد. مرّر أفقيًا لمراجعته كاملًا قبل النسخ.
تفضّل نسخة محلية؟ نزّل الملفات المتاحة حاليًا لدى SkillsMP.
تحميل Zip جاري التحميل... 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]]
المهن ذات الصلة SOC
استنادا إلى تصنيف SOC المهني