2011-11-16 36 views
31

Tôi theo lời khuyên đưa ra ở đây để tìm lời từng phần với elasticsearch:Elasticsearch luôn trở về "loại bản đồ là mất tích"

ElasticSearch n-gram tokenfilter not finding partial words

tôi đã tạo ra một kịch bản bash đơn giản mà cố gắng để chạy một phiên bản này:

curl -XDELETE 10.160.86.134:9200/products 
curl -XPOST 10.160.86.134:9200/products -d '{ 
    "index": { 
    "number_of_shards": 1, 
    "analysis": { 
     "filter": { 
     "mynGram" : {"type": "nGram", "min_gram": 2, "max_gram": 10} 
     }, 
     "analyzer": { 
     "a1" : { 
      "type":"custom", 
      "tokenizer": "standard", 
      "filter": ["lowercase", "mynGram"] 
     } 
     } 
    } 
    } 
    } 
}' 

curl -XPUT 10.160.86.134:9200/products/_mapping -d '{ 
    "product" : { 
    "index_analyzer" : "a1", 
    "search_analyzer" : "standard", 
    "properties" : { 
     "product_description": {"type":"string"}, 
     "product_name": {"type":"string"} 
    } 
    } 
}' 

Tiếp theo chạy script này hai lệnh đầu tiên (sản phẩm bán phá giá, sau đó thiết lập các chỉ số) dường như làm việc cho tôi này:

{"ok":true,"acknowledged":true} 
{"ok":true,"acknowledged":true} 

Sau đó, nó lỗi ra sau cuộc gọi lập bản đồ cho tôi này:

{"error":"ActionRequestValidationException[Validation Failed: 1: mapping type is missing;]","status":500} 

bất cứ ai có thể nhìn thấy những gì tôi đang làm sai? Tìm kiếm google bắt đầu tự động hoàn thành "bản đồ không tìm thấy elasticsearch" do đó, nó có vẻ là một lỗi rất phổ biến.

+1

elasticsearch vẫn còn là một dự án trẻ, tài liệu đang phát triển, nhưng vẫn còn thiếu. Tôi thường nhận được phản hồi tuyệt vời về danh sách gửi thư, https://groups.google.com/group/elasticsearch – Andy

Trả lời

72

Hóa ra điều này xảy ra bởi vì các bản đồ cần phải được áp dụng cho các loại:

Tôi đã cố gắng áp dụng nó để điều sai:

curl -XPUT 10.160.86.134:9200/products/_mapping -d '{ 

Nó cần phải được áp dụng cho các loại như vậy :

curl -XPUT 10.160.86.134:9200/products/product/_mapping -d '{ 

Thật đáng buồn khi tìm kiếm google đơn giản không thể trả lời câu hỏi này. Ngoài ra các bài trước tôi liên kết đến là rất sai lầm và câu trả lời là sai, mà tôi sẽ chỉ ra có là tốt.

+5

Tôi đang ở bên bạn. Có vẻ như không đủ để tìm kiếm đàn hồi. Các tài liệu không đủ hữu ích, và việc tìm kiếm không giúp ích gì nhiều. Tôi đã gặp lỗi khi _routing và không thể tìm thấy bất kỳ câu trả lời nào ở bất kỳ đâu. Tôi cũng đã không thử IRC, nhưng nó có thể có thể giúp đỡ. – swatkins

+0

Tôi đồng ý với bạn: tài liệu nhưng tôi tin rằng đây là lần gần đây (khi bạn hỏi) thay đổi như [trước đây bạn có thể 'PUT' ánh xạ tới chỉ mục và bao gồm loại tài liệu trong JSON ánh xạ] (https: // groups.google.com/a/elasticsearch.com/d/msg/users/_i2sVYlCsrI/5n2tqMa-DXEJ) ... Tài liệu đang trở nên tốt hơn nhưng vẫn không có cách nào ở đó – Basic

+0

Liên kết với [tài liệu] (https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-mapping.html) để tham khảo. – yurez

2

Đặt ánh xạ cho chỉ mục là có thể trong tìm kiếm Đàn hồi. Tôi đã thử điều này với phiên bản mới nhất của tìm kiếm Elastic 1.7.3 và tôi đã có thể thiết lập ánh xạ thành công cho chỉ mục.

Tôi đã thử các sau đây,

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