2017-04-26 2 views
0

로케일로 동적으로 제어 할 수 있도록 검색 가능한 속성을 설정하려고합니다. 나는 멀티 랭 지원에 algolia에서이 가이드를 따라 시도하고있다 : https://www.algolia.com/doc/guides/search/multilingual-search/즉석 검색 위젯에 Algolia searchableAttributes를 설정하려면 어떻게해야합니까?

예 인덱스에서이 값 설정을 보여줍니다

Algolia.init_index('movies').set_settings({"searchableAttributes"=>["title_eng,title_fr,title_es"]}) 

을하지만 내가 어쩌면 나는, 내 인덱스를 생성하고 어떻게하지 무언가를 놓침? 도우미에 set_settings 메서드가있는 것 같지 않습니다.

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 
) 

마지막으로 다음과 같은 커피 스크립트 코드 블록의 바닥으로 발견

helper.setQueryParameter('searchableAttributes', searchable_terms_array) 

, 내가 설정하고주의하는 것이 중요 할 수 있습니다

나는이를 통해 설정하려고 Algolia 관리 콘솔을 통해 기본 검색 가능한 속성을 추가 할 수 있지만 API를 통해 검색 가능한 추가 언어 관련 필드를 설정한다고 가정합니다.

답변

1

searchableAttributes은 검색어 매개 변수가 아닙니다. JS Helper는 클라이언트의 쿼리 전용 레이어입니다. 즉, JS 도우미를 사용하여 색인 설정을 설정할 수 없습니다.

다중 언어 지원을 위해 수행해야 할 작업은 언어별로 복제본을 만드는 것입니다. 각 복제에는 검색 가능한 속성 집합이 다릅니다. 그런 다음 instantsearch.js 또는 JS 도우미를 사용하여 도우미의 sortBySelector 위젯 또는 setIndex 메소드를 사용하여 각각 색인을 전환 할 수 있습니다.

+0

이것은 훨씬 더 의미가 있습니다. 현재 실행중인 문제는 복제본 관계가 계속 사라지는 것입니다. 주 색인을 만들었고 4 개의 로케일 색인 (각 언어에 하나씩)을 만들었습니다. 다음으로 복제본 탭의 기본 색인에서 복제본으로 로켈 색인을 설정합니다. 더 많은 데이터를 기본 색인에 추가하면 로케일 복제본이 갑자기 연결되지 않습니다. 즉, 복제본 탭이 갑자기 "구성 해제되었습니다". 내가 뭘 놓치고 있니? – Thomas

+1

향후 독자를 위해 : 데이터 색인을 위해 algoliasearch-rails gem을 사용한다면'add_replica' 메소드를 사용하여'.reindex! '호출이 지우는 복제본을 대체 할 수 있습니다 - [algolia rails gem replica docs] (https://github.com/algolia/algoliasearch-rails#primaryreplica) – Thomas

관련 문제