gpt4 book ai didi

javascript - 我想用 javascript 进行高级搜索。如何?

转载 作者:行者123 更新时间:2023-11-29 17:19:29 25 4
gpt4 key购买 nike

我使用以下代码进行基本的、区分大小写的、特定于术语的搜索。它现在可以工作,但我想要一些东西(按重要性排序):

1:忽略大小写(即“hi”和“Hi”都是一样的。toLowerCase 不是一个选项,不是一回事)

2:例如,如果搜索查询是“Search Term”并且搜索到的字符串是“searching terms”,则会产生命中。

3:即使在找到更多匹配项后仍搜索整个字符串。

目的是搜索<p>带有特定 id 的标签一个学期。如果有,则显示它。最终,我将在一个循环中使用它来搜索许多 <p>标记并显示命中的那些,隐藏那些没有命中的。

代码:

<!DOCTYPE html>
<html>
<body>
<p id="demo">Click the button to locate where in the string a specifed value occurs.</p>
<p id="demo1" style="display:none;">Hello world, welcome to the universe.</p>
<button onclick="myFunction()">Try it</button>

<script>
function myFunction() {
var x = document.getElementById("demo1")
var str = x.innerHTML.toString();
var n = str.indexOf("welcome");
if (n != -1) {
x.style.display = 'inline';
} else {
x.innerHTML = 'Negative';
x.style.display = 'inline';
}
}
</script>

</body>
</html>

最佳答案

我将从标记化您的输入字符串开始:

function tokenize(input) {
return input.toLowerCase().replace(/[^a-z0-9_\s]/g, '').split(/\s+/g)
}

哪个对您的搜索字词执行此操作:

> tokenize("I'm your search string.")
["im", "your", "search", "string"]

接下来,去除后缀(我什至不打算尝试处理这不起作用的情况。这就是 NLP 的用途):

function remove_suffix(token) {
return token.replace(/(ing|s)$/, '');
}

它将对每个 token 执行此操作:

> remove_suffix('searching')
"search"
> remove_suffix('terms')
"term"

因此对于每个查询字符串,您可以构造一个关键字列表:

function get_keywords(query) {
var tokens = tokenize(query);
var keywords = tokens.map(remove_suffix);
keywords.sort();

return keywords;
}

它会将您的查询转换为关键字:

> get_keywords('searching terms')
["search", "term"]
> get_keywords('term search')
["search", "term"]

现在,您只需检查查询字符串的关键字是否包含在搜索字符串的关键字中。

这是一个非常简单的示例,不会处理大量极端情况,但至少您了解了如何使用关键字进行搜索。

关于javascript - 我想用 javascript 进行高级搜索。如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14068460/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com