首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >关键项的Discord.js搜索

关键项的Discord.js搜索
EN

Stack Overflow用户
提问于 2018-10-30 13:46:08
回答 1查看 1.2K关注 0票数 1

我试图制造一个不和谐的机器人在某些游戏中进行交易。到目前为止,我已经使用了大多数基本命令--create在SQL数据库中创建了一个交易列表,!finds -但是它只在完全相同的单词上找到它。我想要做的是使搜索不那么具体,这样就不需要完全相等的条件来显示结果。我当前的代码非常复杂,不用说,非常糟糕:

代码语言:javascript
运行
复制
var searchTerms = args[1].split(" ");
var output = {};
for (var id in userData) {
    for (var offer in userData[id].offers) {
        var score = 0;
        for (var key in searchTerms) {
            if (offer.includes(key)) {
                score ++;
            }
        }
        if (score >= searchTerms.length / 2) {
            output[id] = userData[id].offers[offer] + " - " + ((score / searchTerms.length) * 100) + "%";
        }
    }
}
if (output == {}) {
    bot.sendMessage({
        to: channelID,
        message: 'No matching offers found.'
    });
} else {
    msg = ""
    for (id in output) {
        msg += '<@' + id + '> - ' + output[id] + "   "
    }
    bot.sendMessage({
        to: channelID,
        message: Object.keys(output).length + ' offers found: ' + msg
    });
}

我对Javascript还不熟悉,所以我不太确定如何让它发挥作用。任何提示都是非常感谢的,谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-30 14:13:42

看起来,您要实现的是一种名为Fuzzy Search的机制,用户可以使用错误或近似字符串找到类似的结果。

(参考:匹配 )

对于编程初学者来说,单独实现并不是一件容易的事情,要么数据库必须支持某种模糊查询,要么您必须首先从数据库获取所有数据,然后使用JavaScript模糊搜索库来实现这一点。

如果您还想这样做,我建议您使用Fuse.js,它可以在几行代码中完成模糊搜索。

代码语言:javascript
运行
复制
//list to be searched
var books = [{
  'ISBN': 'A',
  'title': "Old Man's War",
  'author': 'John Scalzi'
}, {
  'ISBN': 'B',
  'title': 'The Lock Artist',
  'author': 'Steve Hamilton'
}]
代码语言:javascript
运行
复制
// init the search
var options = {
  keys: ['title', 'author'],
  id: 'ISBN'
}
var fuse = new Fuse(books, options)

fuse.search('old')
代码语言:javascript
运行
复制
// result
[
  "A"
]

模糊搜索是一个复杂的计算机科学问题,如果您想更多地了解它以及Fuse.js是如何实现的,下面是几个有用的链接

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53065747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档