我正在尝试构建一个类似于应用程序的Twitter主题标签的主题标签系统。但是,在将不同的拼写分组在一起时,我无法弄清楚如何拼写这样的标签。
例如,当您在Twitter上使用#abc时,可能会有不同的拼写,如#abc,#Abc,#aBC等。 当hastag呈趋势时,它会在趋势列表中以特定拼写显示,例如。 #abC并将所有不同版本分组。
我应该如何确定"正确"拼写?
答案 0 :(得分:0)
我刚刚为我的应用程序构建了一个#标签系统,但我还没有完成它,但我的方法是获取任何带有#*字符串的帖子。然后用
解析出来GetHashes(t: string){
var hashed = t.match(/#\w+/g);
if(hashed != null){
hashed.forEach(element => {
var unhashed = element.slice(0,0) + element.slice(1,element.length);
this.hashTags.push(unhashed);
});
}else{
}
}
然后,一旦我拥有所有哈希值,我只需执行替换即可将所有内容转换为小写。这就是我发送到数据库的内容。我正在使用Firebase,因此我对数据进行了非规范化处理并将其复制了很多,因此我将帖子的全部内容存储在数据库中的标记下。这可能看起来像很多数据存储浪费但存储很便宜。然后,我不必实施类似于" ElasticSearch"的搜索系统。或" Algolia"这很贵。 (我仍然需要进行全文搜索,但不需要为哈希节省大量现金)。
然后,当我想要返回所有#*时,我只是在Firebase数据库和中提琴中找到该引用!
我能弄清楚的是如何制作动态调用函数的hashtags链接。我一直在使用innerHtml,但这使得一切都变成了字符串。
希望这有点帮助。