如何使用 azure search javascript sdk 设置 Appinsights
How to setup Appinsights with azure search javascript sdk
从 Azure 搜索文档中我知道我们必须获取一些搜索信息才能设置 appinsights 遥测。
问题是:如何从@azure/search-documents SearchDocumentResult 获取 SearchID 信息?
我假设您更关心搜索查询遥测而不是索引器遥测,但如果我错了请纠正我。这个文档页面有帮助吗? https://docs.microsoft.com/azure/search/search-traffic-analytics
在该页面中,设置 searchId 的方法如下:
request.setRequestHeader("x-ms-azs-return-searchid", "true");
request.setRequestHeader("Access-Control-Expose-Headers", "x-ms-azs-searchid");
var searchId = request.getResponseHeader('x-ms-azs-searchid');
如果我误解了这个问题,请告诉我。
使用 @azure/search-documents
模块,您可以设置客户端并将自定义 headers 添加到操作中,如下所示:
const { SearchClient, AzureKeyCredential } = require("@azure/search-documents");
const indexName = "nycjobs";
const apiKey = "252044BE3886FE4A8E3BAA4F595114BB";
const client = new SearchClient(
`https://azs-playground.search.windows.net/`,
indexName,
new AzureKeyCredential(apiKey)
);
async function main() {
var searchId = '';
const searchResults = await client.search('Microsoft', {
top: 3,
requestOptions: {
customHeaders: {
'Access-Control-Expose-Headers': 'x-ms-azs-searchid',
'x-ms-azs-return-searchid': 'true'
},
shouldDeserialize: (response) => {
searchId = response.headers.get('x-ms-azs-searchid');
return true;
}
}
});
console.log(`Search ID: ${searchId}\n`);
for await (const result of searchResults.results) {
console.log(`${result.document.business_title}\n${result.document.job_description}\n`);
}
}
似乎目前唯一的方法是 shouldDeserialize
回调,如示例所示,因为当 [=18] 时,它会在反序列化之前为您提供包括 headers =] 从某些 objects 中剥离,例如 search
.
返回的分页响应 objects
从 Azure 搜索文档中我知道我们必须获取一些搜索信息才能设置 appinsights 遥测。
问题是:如何从@azure/search-documents SearchDocumentResult 获取 SearchID 信息?
我假设您更关心搜索查询遥测而不是索引器遥测,但如果我错了请纠正我。这个文档页面有帮助吗? https://docs.microsoft.com/azure/search/search-traffic-analytics
在该页面中,设置 searchId 的方法如下:
request.setRequestHeader("x-ms-azs-return-searchid", "true");
request.setRequestHeader("Access-Control-Expose-Headers", "x-ms-azs-searchid");
var searchId = request.getResponseHeader('x-ms-azs-searchid');
如果我误解了这个问题,请告诉我。
使用 @azure/search-documents
模块,您可以设置客户端并将自定义 headers 添加到操作中,如下所示:
const { SearchClient, AzureKeyCredential } = require("@azure/search-documents");
const indexName = "nycjobs";
const apiKey = "252044BE3886FE4A8E3BAA4F595114BB";
const client = new SearchClient(
`https://azs-playground.search.windows.net/`,
indexName,
new AzureKeyCredential(apiKey)
);
async function main() {
var searchId = '';
const searchResults = await client.search('Microsoft', {
top: 3,
requestOptions: {
customHeaders: {
'Access-Control-Expose-Headers': 'x-ms-azs-searchid',
'x-ms-azs-return-searchid': 'true'
},
shouldDeserialize: (response) => {
searchId = response.headers.get('x-ms-azs-searchid');
return true;
}
}
});
console.log(`Search ID: ${searchId}\n`);
for await (const result of searchResults.results) {
console.log(`${result.document.business_title}\n${result.document.job_description}\n`);
}
}
似乎目前唯一的方法是 shouldDeserialize
回调,如示例所示,因为当 [=18] 时,它会在反序列化之前为您提供包括 headers =] 从某些 objects 中剥离,例如 search
.