2016-02-16 10 views
5

アルゴリアのクエリの初期値を渡すためのインデックスがあります。私はinstantsearch.jsを使用しています。今はインデックスからすべてを読み込みます。ページの読み込み時にインデックスに初期値を渡すにはどうすればよいですか?たとえばSelect * from index where Category='Careers'についてはAlgoliaの初期検索パラメータinstantsearch.js

私はこのためのマニュアルを参照して検索したし、それを把握するカント

(負荷の値としてのキャリアを渡します)。

また、私は複数の値を渡す必要があるので、何かのように:

(とまたは文)select * from index where Category = 'Careers' or 'Skills' or 'Interests'

ありがとう!

答えて

11

refinementListウィジェット:https://community.algolia.com/instantsearch.js/documentation/#refinementlistを使用しているとします。あなたのデータの 'カテゴリ'属性。

もしそうなら、あなたはこれを行うことができます:

var preselectedCategories = ['Careers', 'Skills']; 

var search = instantsearch(applicationID, apiKey, { 
    ...other parameters, 
    searchParameters: { 
    disjunctiveFacetsRefinements: { 
     category: preselectedCategories 
    } 
    } 
}) 

をあなたはまたrefinementListのインスタンスでこれを実行する必要があります。

var refinementList = instantsearch.widgets.refinementList({ 
    transformData: { 
    item: function(item) { 
     if (preselectedCategories.indexOf(item.name) !== -1) { 
     item.cssClasses.label += ' pre-selected'; 
     } 

     return item; 
    } 
    } 
}); 

その後、すべて事前に選択されたカテゴリの項目は、「前を持っていますデフォルトでは "selected" css クラスです。

次にあなたがするCSSと、このクラス名を使用することができます。

.pre-selected { 
    display: none; 
} 

私はこれを試してみましたが、配列は「OR」ステートメントをしないようで、私は

+0

を知ってみましょう。 –

+0

また、私は "disjunctiveFacetsRefinements"をやってみました。これは機能しますが、ウィジェット内のチェックボックスをチェックするだけで、すべてのウィジェットを削除するのではなく、2つの値をチェックするだけです。 –

+0

申し訳ありませんあなたのユーザー名を入れるのを忘れました@vvo –

関連する問題