0

我正在尝试为我的网站实现一个使用 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 文件,还是不会有什么不同?

4

1 回答 1

2

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

如果这些链接有描述,那么 lunr (或任何其他全文搜索)将是一个很好的选择,那么你真的是在进行全文搜索

无论如何,标签对我来说意味着多面搜索。我想您将拥有这些标签的有限列表,然后您会想要找到哪些链接具有这些确切的标签。你可以用 lunr 近似一些类似的东西,但可能有更好的工具来完成这项工作。

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

至于将 lunr 与 firebase 一起使用,只要 lunr 可以访问所有链接数据以进行索引,它并不关心您实际存储文档的位置。我对 firebase 完全不熟悉,因此无法评论将 lunr 与该服务集成的实用性,也许其他人可以在这方面为您提供帮助。

于 2016-07-16T19:50:08.807 回答