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 構造を Web サイトのホーム ディレクトリ (/dir/ など) のフォルダーにエクスポートし、代わりにそこから lunr を読み取ることを考えていました。ファイアベース。ファイルは Firebase ではなくローカルにあるため、その方が速いでしょうか、それとも違いはありませんか?

4

1 に答える 1

2

全文検索が必要な場合は、lunr を使用して、これらのドキュメント内のタグのインデックスを提供できます。

これらのリンクに説明がある場合は、lunr (またはその他の全文検索) が適切であり、実際に全文検索を行っていることになります。

とにかく、タグはファセット検索を意味します。これらのタグの有限リストがあり、どのリンクがこれらの正確なタグを持っているかを見つけたいと思うでしょう。lunr で似たようなものを近似することもできますが、おそらくもっと優れたツールがあります。

タグの大きなリストがあり、何らかの説明が含まれている可能性がある場合は、lunr を使用してユーザーがタグを検索できるようにし、それらのタグを使用してリンクに対してファセット検索を実行できます。

lunr を firebase で使用する場合、lunr がインデックス作成のためにすべてのリンク データにアクセスできる限り、ドキュメントを実際にどこに保存するかは問題ではありません。私はfirebaseにまったく詳しくないので、lunrをそのサービスに統合することの実用性についてコメントすることはできません.おそらく他の誰かがその面であなたを助けることができます.

于 2016-07-16T19:50:08.807 に答える