我正在尝试为我的网站实现一个使用 Firebase 作为数据库的搜索栏。它是一堆指向某些图像和嵌入视频的链接。我在想是否最好为每个链接都有一个 lunr 库会查询的"标签"字段?我将每个标签字段拆分为一个字符串数组,lunr 会查找每个字符串?
我的数据库的 JSON 格式为:
{ "Featured" : {
"Link1" : {
"isEmbed" : false,
"priority" : 4,
"url" : "https://s3.amazonaws.com/hagshs8282n23/image7.jpg",
"tag" : nba nfl nhl mlb yahoo
},
"Link2" : {
"isEmbed" : false,
"priority" : 3,
"url" : "https://s3.amazonaws.com/hagshs8282n23/image6.jpg",
"tag" : fire base stuff art cool
} }
这是搜索对象的缓慢方法还是有更好的思考方法?
或者,我想每当将文件添加到数据库中时,我都会将新的 JSON 结构导出到网站主目录中的文件夹(/dir/或类似的东西),然后让 lunr 从中读取而不是 Firebase。这会更快,因为文件是本地文件而不是在 Firebase 中,还是不会有什么不同?
如果你想要/需要全文搜索,那么 lunr 当然可以用来提供这些文档中标签的索引。
如果这些链接有描述,那么 lunr(或任何其他全文搜索)将是一个不错的选择,然后你真的在进行全文搜索。
无论如何,对我来说,标签意味着分面搜索。我想你会有一个这些标签的有限列表,然后你会想要找到哪些链接有这些确切的标签。你可以用 lunr 近似一些类似的东西,但可能有更好的工具来完成这项工作。
现在,如果您有一个大型标签列表,可能带有某种描述,那么您可以使用 lunr 允许用户搜索标签,然后使用这些标签对您的链接执行分面搜索。
至于将 lunr 与 firebase 一起使用,只要 lunr 可以访问所有链接数据以进行索引,它就不在乎您实际存储文档的位置。我对Firebase一点也不熟悉,所以不能评论将lunr与该服务集成的实用性,也许其他人可以在这方面为您提供帮助。