2016-03-21 15 views
8

Tôi muốn thêm một số thuộc tính bổ sung vào ánh xạ của tôi, trong trường hợp cụ thể này tôi muốn sửa đổi trường tiêu đề trong chỉ mục tiếng Anh của tôi để sử dụng trình phân tích tiếng Anh.Đặt update_all_types thành true trên ElasticSearch

Nên khá đơn giản, ngoại trừ việc tôi có trường tiêu đề ở một số loại và có vẻ như không thể thực hiện việc này.

Các lỗi tôi có là như sau: Set update_all_types true để cập nhật [search_quote_analyzer] trên tất cả các loại]

Nhưng tôi không thể tìm thấy một tài liệu tham khảo duy nhất trên thế nào hoặc nơi để thiết lập này 'update_all_types'. tham số.

Đây là mã rất đơn giản tôi sử dụng trong Sense:

PUT /my_index/_mapping/my_type 
    { 
     "properties": { 
     "title": { 
      "type": "string", 
      "analyzer": "english" 
     } 
     } 
    } 

Vì vậy, làm thế nào tôi có thể làm cho công việc này nếu các lĩnh vực tương tự được sử dụng trong các loại khác?

Đây là thông báo lỗi:

"type": "illegal_argument_exception", 
"reason": "Mapper for [title] conflicts with existing mapping in other types: 
    [mapper [title] has different [analyzer], mapper [title] is used by 
    multiple types. Set update_all_types to true to update [search_analyzer] 
    across all types., mapper [title] is used by multiple types. Set 
    update_all_types to true to update [search_quote_analyzer] across 
    all types.]" 

Vì vậy, có vẻ như tôi cần phải đặt 'update_all_types: true' ở đâu đó, nhưng tài liệu không thành công trên phần đó.

+0

Nếu bạn sử dụng tính năng tìm kiếm trong tài liệu, bạn sẽ truy cập [trang thích hợp] (https://www.elastic.co/guide/en/elasticsearch/reference/2.2/indices-put-mapping.html#merging-conflicts) ;-) – Val

+0

Ouch , có vẻ như tôi đã bỏ qua điều đó. Dù sao, dường như không hoạt động hoặc bây giờ tôi gặp lỗi khác, tôi sẽ cập nhật bài đăng gốc – Wokoman

+0

Có thể là trường 'title' trong loại khác của bạn đã có một trình phân tích khác (tức là không giống như bộ phân tích của 'tiêu đề' trong loại' my_type'). Khả thi? Bạn có thể hiển thị đầu ra của 'GET my_index' không? – Val

Trả lời

6

Bạn có thể tìm thấy tài liệu here!

Các update_all_types là một tham số get để cung cấp cho như thế: PUT my_index/_mapping/type_one?update_all_types

1

Tôi đã có một vấn đề tương tự, hãy thử đoạn code dưới đây để cập nhật tất cả các loại:

PUT /my_index/_mapping/my_type?update_all_types 
    { 
     "properties": { 
     "title": { 
      "type": "string", 
      "analyzer": "english" 
     } 
     } 
    } 
Các vấn đề liên quan