2015-10-13 19 views
5

Tôi đã tạo một miền Tìm kiếm Đàn hồi AWS mới để thử nghiệm. Tôi sử dụng ES trên một máy chủ khác ngay bây giờ, và tôi đang tìm cách chuyển sang AWS.Không thể đóng chỉ mục ElasticSearch trên AWS?

Một điều tôi cần làm là đặt ánh xạ (phân tích) trên cá thể của tôi. Để làm điều này, tôi cần phải "đóng" chỉ mục, nếu không ES sẽ chỉ đưa ra một ngoại lệ.

Bất cứ khi nào tôi cố gắng để đóng chỉ số, tuy nhiên, tôi nhận được một ngoại lệ từ AWS:

Your request: '/_all/_close' is not allowed by CloudSearch. 

Các AWS ES documentation cụ thể nói để làm điều này trong một số trường hợp:

curl -XPOST 'http://search-weblogs-abcdefghijklmnojiu.us-east-1.a9.com/_all/_close' 

Tôi có không tìm thấy bất kỳ tài liệu nào nói rằng tại sao tôi không thể đóng các chỉ mục của mình trên AWS ES, cũng như không tìm thấy ai khác có vấn đề này.

Cũng hơi lạ khi tôi có một miền ElasticSearch, nhưng nó cho tôi một thông báo lỗi CloudSearch, vì tôi cho rằng đó là các dịch vụ khác nhau, mặc dù tôi cho rằng đó là các dịch vụ khác.

cảm ơn!

+0

Phát đẹp, anh có liên hệ với AWS trực tiếp cho vấn đề này? – BMW

+0

BMW: Tôi đã nhận được một lỗi (thậm chí nhiều hơn chung chung) khi cố gắng đăng lên diễn đàn của họ, là tốt. : P –

Trả lời

0

Vì việc đóng tất cả các chỉ mục cùng một lúc là một hành động nguy hiểm, nó có thể bị tắt theo mặc định trên cụm của bạn. Bạn cần phải chắc chắn rằng tập tin cấu hình elasticsearch.yml của bạn không chứa này:

action.destructive_requires_name: true 

Bạn có thể thiết này trong tập tin cấu hình của bạn và khởi động lại cluster của bạn, nhưng tôi tư vấn mạnh mẽ chống lại rằng vì đây mở cửa cho tất cả các loại hành động phá hoại khác, như xóa tất cả các chỉ mục của bạn cùng một lúc.

action.destructive_requires_name: false 

Bạn nên làm gì thay vì là tạm cập nhật các thiết lập cluster bằng cách sử

curl -XPUT localhost:9200/_cluster/settings -d '{ 
    "persistent" : { 
     "action.destructive_requires_name" : false 
    } 
}' 

Sau đó đóng tất cả các chỉ số của bạn

curl -XPOST localhost:9200/_all/_close 

Và sau đó thiết lập lại các thiết lập một giá trị an toàn hơn :

curl -XPUT localhost:9200/_cluster/settings -d '{ 
    "persistent" : { 
     "action.destructive_requires_name" : true 
    } 
}' 
+1

AWS ES là dịch vụ cấp cao hơn và không cung cấp quyền truy cập trực tiếp vào 'elasticsearch.yml'. Tôi nhận được một "tải trọng không được phép" lỗi khi tôi cố gắng để PUT để '/ _cluster/settings' như thế. –

+0

Bạn có ít nhất có thể đóng một chỉ mục bằng cách sử dụng '/ your_index/_close' không? – Val

+0

Câu trả lời của bạn đã cho tôi một ý tưởng. Tôi đang làm '.close (index = INDEX_NAME)' từ thư viện khách hàng của tôi, nhưng có vẻ như nó đang gõ dây như '/ _all/_close' vì một lý do nào đó.Vì vậy, tôi đã thử 'curl -XPOST host/my_index/_close' và AWS báo cáo rằng điều này" cũng không được CloudSearch cho phép ". Darn. –

3

AWS Elasticsearch không hỗ trợ thao tác "đóng" trên các chỉ mục.

http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-managedomains.html

"Hiện nay, Amazon ES không hỗ trợ _close API Elasticsearch"

+0

Có, họ đã thay đổi tài liệu. Tôi đoán nhóm tài liệu và thực hiện của họ không thực sự nói chuyện với nhau. Ngay cả người lạ, không có hồ sơ về sự thay đổi này trong Lịch sử tài liệu. –

+1

Nếu bạn muốn thêm ánh xạ, bạn sẽ phải kết nối lại. Có một số bài viết hay về cách sử dụng bí danh để thực hiện việc này. Các bước cơ bản - tạo bí danh đọc và bí danh ghi. Bí danh đọc điểm tới chỉ mục hiện tại. Tạo chỉ mục mới với ánh xạ mới. Bí danh ghi điểm tới chỉ mục mới. Sau đó sao chép chỉ mục cũ sang chỉ mục mới (đọc từ bí danh đọc, viết để viết bí danh). Điều này liên quan đến việc sửa đổi mã hiện có để sử dụng bí danh thay thế. https://www.elastic.co/guide/en/elasticsearch/guide/current/reindex.html https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-aliases .html – burn0050

Các vấn đề liên quan