2012-10-02 3 views
0

나는 한 레일 모델에 대한 다음과 같은 타이어 매핑 : (나는 영어 또는 다른 뭔가를 추가 할 경우)언어 별 타이어 색인은 무엇입니까?

mapping do 

    indexes :name, analyzer: 'arabic', boost: 10 

    indexes :city_name, analyzer: 'arabic', boost: 5 

    indexes :description, analyzer: 'arabic' 

    end 

덮여 여러 언어를 가질 수있는 가장 좋은 방법은 무엇입니까?

답변

1

중요한 것은 각 언어의 특정 입력란을 사용하여 데이터를 색인해야한다는 것입니다.
텍스트 분석 (형태소 분석, 중지 단어, 동의어 등)에 따라 언어를 적용하려는 각 필드는 언어 자체에 따라 특정 매핑이 필요합니다. 제목과 내용 필드가 있다고 가정하면 각 언어에 대해 두 개의 필드가 필요합니다.
그런 다음 동일한 색인, 동일한 유형의 모든 문서를 색인화하고 언어가 들어있는 필드를 추가 할 수 있습니다. 그렇지 않으면 각 언어를 다른 유형으로 색인화 할 수 있습니다.이 유형은 첫 번째 옵션과 동일하지만 조회시 수동으로 언어 필터를 지정할 필요가 없습니다. 필터는 당신이이 같은 URL에 형식과 언어를 지정으로 "자동으로"적용 것 :

curl -X GET http://localhost:9200/index/en/_search -d '{ 
    "query" : {"match_all" : ""} 
} 

그렇지 않으면 당신은 또한 각 언어에 대해 서로 다른 인덱스를 사용할 수 있습니다. 귀하의 데이터, 색인의 크기 (언어 당 얼마나 많은 문서입니까?) 및 검색어 작성 방법 (언어 별 또는 다른 언어를 혼합 할 수있는 방법)에 따라 달라집니다.

또한 Shay가 최근에 베를린 Buzzwords에서 제공 한 Data desing patterns 토크가 흥미로울 수 있습니다.