現在、bing 画像検索 API を使用する学校のプロジェクトに取り組んでいます。私の目標は、すべてのスターウォーズ キャラクターのプロフィール写真を (できるだけ正確に) 取得することです。理由はわかりませんが、API は文字にアクセントのある結果を見つけられないようです。
たとえば、以下のコードでは、searchTerm = "Han Solo"
すべてが機能する場合でもsearchTerm = "Dormé"
、API が画像を返さない場合があります。
奇妙なことに、同じ検索を bing で直接行うと、多くの写真が見つかりますが、API からは何も得られません。
//server.js
app.get('/getPortrait/*', (req, res) => {
const serviceKey = "MY_KEY";
let searchTerm = req.url.split('/').pop();
// when searchTerme= "han solo", it works fine
// when searchTerme= "Dormé", it works but returns no image in the response
let credentials = new CognitiveServicesCredentials(serviceKey);
let imageSearchClient = new Search.ImageSearchClient(credentials);
let resultURL;
const sendQuery = async () => {
return await imageSearchClient.imagesOperations.search(searchTerm);
};
sendQuery().then(imageResults =>{
console.debug(imageResults)
if (imageResults == null || imageResults.value.length == 0) {
console.error("No image results were found.");
res.send(defaultPic);
}
else {
resultURL = imageResults.value[0].contentUrl;
console.log(resultURL);
res.send(resultURL);
}
}).catch(err => {
console.error(err)
res.send(defaultPic);
});
});
すべてのタイプの文字を受け入れるように検索を構成する方法はありますか?
これらのクエリに対して取得した結果は次のとおりです。
\\searchTerm = "Dormé"
Object {_type: "Images", value: Array(0)}
_type:"Images"
value:Array(0) []
__proto__:Object {constructor: , __defineGetter__: , __defineSetter__: , …}
\\searchTerm = "han solo"
Object {_type: "Images", readLink: "https://api.cognitive.microsoft.com/api/v7/images/…", webSearchUrl: "https://www.bing.com/images/search?q=han%20solo&FO…", totalEstimatedMatches: 868, nextOffset: 43, …}
nextOffset:43
readLink:"https://api.cognitive.microsoft.com/api/v7/images/search?q=han%20solo"
totalEstimatedMatches:868
value:Array(35) [Object, Object, Object, …]
webSearchUrl:"https://www.bing.com/images/search?q=han%20solo&FORM=OIIARP"
__proto__:Object {constructor: , __defineGetter__: , __defineSetter__: , …}
https://www.starwarsnewsnet.com/wp-content/uploads/2017/01/Alden-Ehrenreich-as-Han-Solo-4.jpg
ご協力ありがとうございました :)