【发布时间】:2020-07-13 13:39:36
【问题描述】:
对不起,如果这个问题已经回答,但我没有任何符合我的情况的内容。
目前我正在尝试使用 Azure 认知搜索构建搜索建议功能。这工作得很好。但现在我尝试构建这样的东西:
建议应显示匹配模式,该模式在搜索栏中输入,前后各有几个词。如图所示。
我尝试构建一个数组,将完整内容拆分为单个单词并搜索模式。但这对我来说似乎很丑陋,因为我不知道如何反转数组并获取前后的单词。并将其编译为合适的字符串。
$.ajax({
url: "https://" + azSearchInstance + ".search.windows.net/indexes/" + azSearchIndex + "/docs?api-version=" + azApiVersion + "&search=" + text + '&$top=' + azSearchResults + '&api-key=' + azApiKey,
method: 'GET'
}).done(function (data) {
// display results
currentSuggestion2 = data[0];
add(data);
for(let i in data.value) {
var content = data.value[i].content;
var contentArray = content.split(' ');
for(let word in contentArray) {
if(contentArray[word] === text) {
console.log(contentArray[word]);
}
}
}
var render = Mustache.render(template, data);
$(".search-suggest").html(render)
});
我的第二次尝试是使用 indexOf() 函数,但它会导致同样的问题,因为它只返回匹配模式所在位置的数字。
$.ajax({
url: "https://" + azSearchInstance + ".search.windows.net/indexes/" + azSearchIndex + "/docs?api-version=" + azApiVersion + "&search=" + text + '&$top=' + azSearchResults + '&api-key=' + azApiKey,
method: 'GET'
}).done(function (data) {
// display results
currentSuggestion2 = data[0];
add(data);
for(let i in data.value) {
var content = data.value[i].content;
console.log(content.indexOf(text));
}
var render = Mustache.render(template, data);
$(".search-suggest").html(render)
});
我正在搜索一个正则表达式,它搜索模式并在模式前后打印 4-5 个单词。你们有人有想法吗?
提前谢谢你。
问候
OjunbamO
【问题讨论】:
-
您可以创建一个正则表达式,其中包含前后 4-5 个单词的组。然后您可以使用该正则表达式进行搜索,最后操纵字符串以显示您想要的结果。但请注意,使用复杂的正则表达式可能会很快变慢。
标签: javascript regex azure search-suggestion