2017-07-06 1 views
2

文字列データ型の属性を持っています.AlgoliasearchHelperオブジェクトを使用してAlgoliaデータベースを検索しています。私がしたいのは、指定された接頭辞をとり、指定された接頭辞を持つ値を持つすべてのオブジェクトを指定された属性の中に返すファセットフィルターを作成することです。フィルタリング時にプレフィックスを使用するファセットフィルタを作成する方法

Helper.addDisjunctiveFacetRefinement("attributeName","Can"); 

これは「attributeNameの」属性に「缶」が、それは任意のオブジェクトを返さないの価値を持っているすべてのオブジェクトを返します。これまでのところ、私はこれを使用していますたとえばについては

、接頭辞が "Can"であっても、 "attributeName"属性に "Canada"または "Canadians"という値が設定されています。

フィルターをかけたときに、指定されたプレフィックスでフィルタリングする方法を教えてください。

答えて

5

フィルタの完全一致には、分離的なファセットの細分化が使用されます。これは主に、可能なフィルタのリストから特定のフィルタを選択するために使用されます。私が望むことは、すべての可能なフィルターのサブセットを取得することです。

これは、searchForFacetValues機能で可能です。まず、インデックス設定でsearchable(attributeName)という設定を行う必要があります。そのため、ファセットを簡単に検索できるように追加のデータ構造を生成することができます。ドキュメント内のその設定についてはread moreでもかまいません。

属性が検索されたらそれで、あなたはこのようなフィルタのリストを絞り込むことヘルパー関数を使用することができます。

Helper.searchForFacetValues("attributeName","Can"); 

は素晴らしい一日を!

+0

これを使用すると、独自の検索がトリガーされます。私は既に使用しています: 'Helper.search()'は検索を行います。私が 'Helper.search()'を呼び出すと、接頭辞 "Can"を持つすべてのファセット値を検索し、宣言した他のファセットフィルタを保持するように、それを作る方法はありますか? ? – Algoliahelpmeplz

+0

ファセット値の検索は、それ自身の別個の検索です。その1つの属性内を調べているだけなので、パラメータとして使用することは実際には意味をなさないでしょうし、そのユースケース(まだ)をサポートしていません。私はあなたの周りに道を見つけるか、より多くの情報を私たちのサポートにお気軽にお気軽に –

関連する問題