2016-03-02 26 views
1

我使用instantsearch.js和小部件組合來顯示我的搜索結果(幾乎完全建模在demos之後)。使用instantsearch.js時設置初始構面/精化值

我需要爲facet設置一些初始值,以便默認情況下過濾某些項目。我該怎麼做呢?我知道AlgoliaSearchHelper(helper)對象有一個方法toggleRefinement,它應該允許我這樣做,但在調用執行初始查詢的search.start()之前,我似乎無法訪問此幫助程序。

有關如何設置一些默認優化的任何建議或見解,將不勝感激。謝謝。

更新:這不是重複 - 我的問題似乎已與instantsearch.widget.toggle。看起來這個小部件在初始搜索之前在幕後設置了默認值。我調整了我的代碼,不使用這個小部件,而只是設置searchParameters.tagFilters屬性。這是切換部件爲我拋出的東西,因爲我無法弄清楚如何覆蓋其默認過濾。

+1

[Algolia最初的搜索參數instantsearch.js(HTTP的可能重複:// stackoverflow.com/questions/35437004/algolia-initial-search-parameters-instantsearch-js) – vvo

+0

請參閱上面的更新...這是導致問題的切換窗口小部件。 – cre8ive

回答

3

初步篩選器添加到您的instantsearch.js例如,最簡單的方法是使用一個額外的自定義部件:

var search = instantsearch({ 
    appId: 'YourApplicationID', 
    apiKey: 'YourSearchOnlyAPIKey', 
    indexName: 'YourIndexName' 
    }); 

    search.addWidget(
    instantsearch.widgets.searchBox({ 
     container: '#search-box', 
     placeholder: 'Search for FIXME...' 
    }) 
); 

    search.addWidget(
    instantsearch.widgets.hits({ 
     container: '#hits-container', 
     templates: { 
     item: 'Hit {{objectID}}: FIXME' 
     } 
    }) 
); 

    // setup initial filters 
    search.addWidget({ 
    init: function(options) { 
     // use options.helper (https://github.com/algolia/algoliasearch-helper-js) to initialize the search with custom filters & parameters 
     options.helper.addFacetRefinement('MyFacet', 'my value'); 
    } 
    }); 

    search.start(); 
+0

這個工作完美。謝謝! – cre8ive

+0

我收到一個錯誤'MyFacet未在輔助程序配置的facets屬性中定義,但'toggleRefinement'工作。 – Paesano2000

0

我的問題似乎已與instantsearch.widget.toggle。看起來這個小部件在初始搜索之前在幕後設置了默認值。我調整了我的代碼,不使用這個小部件,而只是設置searchParameters.tagFilters屬性。這是切換部件爲我拋出的東西,因爲我無法弄清楚如何覆蓋其默認過濾。

3

你確實是正確的,在引擎蓋下的切換部件uses the off value if provided

if (userValues.off === undefined) { 
    return; 
} 
// Add filtering on the 'off' value if set 
let isRefined = state.isFacetRefined(attributeName, userValues.on); 
if (!isRefined) { 
    helper.addFacetRefinement(attributeName, userValues.off); 
} 

爲了避免其他用戶這個不理解,現在PR沒有對instantsearch.js與以下更新:

請注意,如果您提供「關閉」選項,則會在初始化時對其進行優化。