Javascript - 'lunr'会成为Firebase的可行搜索库吗?

时间:2016-07-06 18:41:55

标签: javascript firebase lunrjs

我正在尝试为我的网站实施一个使用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,还是没有区别?

1 个答案:

答案 0 :(得分:2)

如果您需要/需要全文搜索,那么当然可以使用lunr为这些文档中的标签提供索引。

如果这些链接有描述,那么lunr(或任何其他全文搜索)将是合适的,你真的正在做full text search

无论如何,对我来说,标签意味着faceted search。我想你会有一个有限的这些标签列表,然后你会想找到哪些链接有这些标签。你可以使用与lunr类似的东西,但是可能有更好的工具来完成这项工作。

现在,如果你有一个很大的标签列表,可能有某种描述,那么你可以使用lunr来允许用户搜索标签,然后使用这些标签在链接上执行分面搜索。

对于将lunr与firebase一起使用,只要lunr可以访问所有链接数据以进行索引,它就不关心实际存储文档的位置。我对firebase一点都不熟悉,所以不能评论将lunr与该服务集成的实用性,也许其他人可以帮助你解决这个问题。