我正在尝试为我的网站实施一个使用Firebase作为其数据库的搜索栏。这是一些链接到某些图像和嵌入视频。我想最好为每个链接都有一个“tag”字段,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,还是没有区别?
答案 0 :(得分:2)
如果您需要/需要全文搜索,那么当然可以使用lunr为这些文档中的标签提供索引。
如果这些链接有描述,那么lunr(或任何其他全文搜索)将是合适的,你真的正在做full text search。
无论如何,对我来说,标签意味着faceted search。我想你会有一个有限的这些标签列表,然后你会想找到哪些链接有这些标签。你可以使用与lunr类似的东西,但是可能有更好的工具来完成这项工作。
现在,如果你有一个很大的标签列表,可能有某种描述,那么你可以使用lunr来允许用户搜索标签,然后使用这些标签在链接上执行分面搜索。
对于将lunr与firebase一起使用,只要lunr可以访问所有链接数据以进行索引,它就不关心实际存储文档的位置。我对firebase一点都不熟悉,所以不能评论将lunr与该服务集成的实用性,也许其他人可以帮助你解决这个问题。