我正在尝试设置可搜索的属性,以便通过locale动态控制这些属性。我试图按照algolia关于多语言支持的指南: https://www.algolia.com/doc/guides/search/multilingual-search/
示例显示在index:
上设置此值Algolia.init_index('movies').set_settings({"searchableAttributes"=>["title_eng,title_fr,title_es"]})
但这不是我创建索引的方式,也许我错过了什么?我似乎也没有在帮助器上使用set_settings
方法。
我试图通过以下方式设置:
helper.setQueryParameter('searchableAttributes', searchable_terms_array)
找到以下咖啡脚本代码块的底部
searchable_terms_array = [
'title_de'
'title_en'
'title_fr'
]
restricted_terms_array = [
'title_' + current_locale
]
search = instantsearch(
appId: 'MY-ID'
apiKey: 'MY_KEY'
indexName: 'my_index_' + rails_env
urlSync: {
threshold: 300
getHistoryState: ->
{ turbolinks: true }
}
searchFunction: (helper) ->
query = search.helper.state.query
# Here is my attempt, doesn't seem to work
helper.setQueryParameter('searchableAttributes', searchable_terms_array)
# is there another way to set above line?
helper.setQueryParameter('restrictSearchableAttributes', restricted_terms_array)
videos.helper.setQuery query
videos.helper.search()
helper.search()
return
)
最后,重要的是要注意我通过Algolia管理控制台设置主要可搜索属性,但假设我应该设置其他语言相关字段以通过API进行搜索。
答案 0 :(得分:1)
searchableAttributes
设置的不是查询参数。 JS Helper是客户端上的仅查询层。这意味着您无法使用JS Helper设置索引的设置。
您需要为多语言支持做的是为每种语言创建一个副本。每个副本都有一组不同的可搜索属性。然后使用instantsearch.js或JS Helper,您可以分别使用帮助器的sortBySelector小部件或setIndex方法切换索引。