問題タブ [react-instantsearch]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
337 参照

google-cloud-firestore - Algolia Search を使用する場合、バリアントを持つアイテムのファイアストア コレクションを構築する方法は?

タイトルが示すように、firestore に次のようなアイテム コレクションがあります。

ただし、これらのアイテムには、さまざまなサイズ/色などのバリエーションが必要です。この構造では、バリアントごとにまったく新しいアイテムを用意するしかありません。これは理想的ではありません。

要件に関する私の現在の考えは次のとおりです。

  • すべてのバリアントを格納する親アイテムには一意の docId があります
  • 各バリアントには一意の docId がありますが、何らかの方法で親アイテムに関連付けられています
  • 共通の属性は、親アイテムのフィールドです (名前、会社、タグなど)
  • 各バリエーションに固有の属性が割り当てられます (在庫、サイズ/タイプ、価格)

私の現在の計画はこれです:

これにはいくつかの問題があります。

  1. 親コレクションをリクエストするときに Firestore がサブ コレクションを取得できないため、追加の db 呼び出しが必要になります。

  2. 大きな問題は、使用可能な属性をアイテムにアタッチする必要があることです。以前はアイテム コレクション レベルで使用できましたが、バリアントができたので、各バリアントに配置する必要があります。親コレクション レベルのバリアント配列にそれがある場合、1 つのアイテムに対して複数の値が存在するため、algolia 検索で使用できるものをフィルタリングすることはできなくなると思います。バリアント サブ コレクションに available を配置すると、Algolia は Items コレクション内のドキュメントのみをインデックス化するため、インデックス化されません。ここに解決策があるかどうかはわかりません。

サブコレクションをまったく持たないことを本当に望んでいます。サブコレクションなしで上記を実行し、すべての一意の属性をバリアント配列にマージするだけでよいと思います。しかし、その場合、バリアントごとに一意の docId を使用することはできず、それが必要であると確信しています (まだ完全にはわかりません)。また、使用可能な属性の問題も修正されません。

これを適切に行う方法について何か考えはありますか?サブコレクションなしでそれを行う方法はありますか?

0 投票する
0 に答える
25 参照

reactjs - インスタント検索コンポーネントの内部テキストを変更するには?

InstantSearch コンポーネントを使用して Web アプリに検索を実装していますが、すべて正常に動作します。プロジェクトにインポートしたばかりのコンポーネントの内部テキストを変更するにはどうすればよいでしょうか?

たとえば、私自身のコンポーネントは次のようになります: (もちろん、インポートとクラスがあります)

たとえば、「< ClearAll />」コンポーネントは、「Clear All」テキストを含むボタンを生成します。変更したいだけですが、node_modules からインポートされています。このコンポーネントに何を渡す必要がありますか、またはどのように変更できますか? 前もって感謝します。

0 投票する
1 に答える
1551 参照

algolia - algolia インデックスのキャッシュを手動でクリアする方法は?

ノードjsバックエンドでアルゴリアクライアントを直接使用しているため、使用しませんinstantsearch.js

アルゴリア インデックスのクエリ/インデックス作成/更新などを簡単に行うことができますが、アプリは常に更新されたヒット リストをリアルタイムで表示する必要があるため、キャッシュをクリアする方法が見つかりません。

私はもう試した

しかし、成功せずに。更新されたヒットリストを表示するには、アプリを手動で強制的にアンマウント/再マウントする必要があります。

解決策はありますか?