2011-10-19 5 views
8

Làm cách nào để lưu trữ các cài đặt elasticsearch + ánh xạ trong một tệp (như schema.xml cho Solr)? Hiện tại, khi tôi muốn thay đổi bản đồ của mình, tôi phải xóa cài đặt chỉ mục của mình và bắt đầu lại. Tui bỏ lỡ điều gì vậy?làm thế nào tôi có thể lưu trữ các thiết lập elasticsearch + ánh xạ trong một tệp (như schema.xml cho Solr)

Tôi hiện không có bộ dữ liệu lớn. Nhưng để chuẩn bị cho một lượng lớn dữ liệu sẽ được lập chỉ mục, tôi muốn có thể sửa đổi các cài đặt và một số cách reindex mà không bắt đầu hoàn toàn mới mỗi lần. Điều này có thể và nếu có, làm thế nào?

Trả lời

16

Đây thực sự là nhiều câu hỏi được cải trang thành một. Tuy nhiên:

Làm cách nào để lưu trữ cài đặt elasticsearch + ánh xạ trong một tệp (như schema.xml cho Solr)?

Đầu tiên, lưu ý, rằng bạn không đã để xác định bản đồ cho rất nhiều loại, chẳng hạn như ngày tháng, số nguyên, hoặc thậm chí dây (khi phân tích mặc định là OK cho bạn).

Bạn có thể lưu trữ các thiết lập và các ánh xạ theo nhiều cách khác nhau, trong ElasticSearch < 1.7:

  1. Trong chính elasticsearch.yml file
  2. Trong một chỉ số template file
  3. Trong một separate file with mappings

Hiện tại, khi tôi muốn thay đổi bản đồ của mình, tôi phải xóa cài đặt chỉ mục của mình và bắt đầu lại. Tui bỏ lỡ điều gì vậy?

Bạn phải lập chỉ mục lại dữ liệu khi bạn thay đổi ánh xạ cho trường hiện có. Khi tài liệu của bạn được lập chỉ mục, công cụ cần phải kết nối lại chúng, để sử dụng ánh xạ mới.

Lưu ý rằng bạn có thể update index settings, trong các trường hợp cụ thể, chẳng hạn như number_of_replicas, "khi đang di chuyển".

Tôi muốn có thể sửa đổi cài đặt và một số cách reindex mà không bắt đầu hoàn toàn mới mỗi lần. Điều này có thể và nếu có, làm thế nào?

Như đã nói: bạn phải reindex tài liệu của bạn, nếu bạn muốn sử dụng một bản đồ hoàn toàn mới cho họ.

Nếu bạn đang thêm, không thay đổi ánh xạ, bạn có thể cập nhật ánh xạ và tài liệu mới sẽ nhận được khi được lập chỉ mục.

+0

Xin lỗi vì nhiều câu hỏi. Đó là tất cả một kịch bản cho tôi vì tôi đã không tìm ra chỉ mục lại mà không bắt đầu toàn bộ quá trình. Cảm ơn bạn đã trả lời. Tôi hiện đang sửa đổi ánh xạ cụ thể bằng cách sử dụng các bộ mã thông báo NGram và edgeNGram và trong một nỗ lực để có được quyền đã phải viết lại chúng. – jbattle

+0

Tôi đã đặt các bản đồ + cài đặt của tôi bên trong một tập lệnh trình bao để làm cho việc tạo và cấu hình chỉ mục của tôi trở thành một quá trình nhanh hơn. – jbattle

+0

Có, trong hầu hết các trường hợp, việc tạo chỉ mục trong quy trình tùy chỉnh có ý nghĩa (có thể là kịch bản lệnh shell, phương thức lớp trong Ruby, v.v.). Tôi chỉ muốn chỉ ra nhiều cách mà ElasticSearch cung cấp cho bạn "bọc" logic lập bản đồ/cài đặt ở cấp công cụ tìm kiếm. – karmi

0

Kể từ Elasticsearch 2.0:

Nó không còn có thể để xác định ánh xạ trong các tập tin trong thư mục config.

Tìm liên kết tài liệu here.

Bạn cũng không thể lưu mẫu chỉ mục trong vị trí cấu hình (path.conf) dưới thư mục templates.

path.conf (/etc/default/elasticsearch theo mặc định trên Ubuntu) lưu trữ bây giờ chỉ các biến môi trường bao gồm kích thước heap, mô tả tệp.

Bạn cần tạo mẫu của mình với curl.

Nếu bạn thực sự tuyệt vọng, bạn có thể tạo chỉ mục và sau đó sao lưu thư mục data và sau đó sử dụng thư mục này làm "mẫu" cho các cụm Elasticsearch mới.