2013-08-08 35 views
7

Tôi đang đấu tranh để triển khai FLT vào hệ thống ES mẫu thử nghiệm mà tôi đang xây dựng. Tôi đã xem các tài liệu trên trang web Elasticsearch và mặc dù nó có, tôi dường như không thể làm việc này. Có lẽ ai đó ngoài kia có thể cho tôi một chút thông tin chi tiết về cách làm điều này.Fuzzy Like This (FLT) - ElasticSearch

Tôi dường như không thể tìm thấy bất kỳ ví dụ nào về việc này đang được thực hiện ở nơi khác trên web, nhưng có lẽ các kỹ năng của Google của tôi hiện không bắt đầu. Đây là những gì tôi đã quản lý để xây dựng cho đến nay -

$ curl -XGET 'http://127.0.0.1:9200/uber/uber/_search?' -d '{ 
    "fuzzy_like_this": { 
    "fields": [ 
     "pty_firstname", 
     "pty_surname" 
    ], 
    "like_text": "Nathan Andew", 
    "max_query_terms": 12 
    } 
}' 

Dưới đây là thông báo lỗi tôi nhận được từ dấu nhắc của tôi khi gửi yêu cầu -

{ 
    "error":"SearchPhaseExecutionException[Failed to execute phase [query], total failure; 
      shardFailures {[u9HfJxbXRn-8ml19FKBTiA][uber][2]: SearchParseException[[uber][2]: from[-1],size[-1]: 
      Parse Failure [Failed to parse source [ 
       { 
       "fuzzy_like_this": { 
       "fields": [ 
        "pty_firstname", 
        "pty_surname" 
       ], 
       "like_text": "Nathan Andew", 
       "max_query_terms": 12 
       } 
       } 
      ]]]; nested: SearchParseException[[uber][2]: from[-1],size[-1]: 
      Parse Failure [No parser for element [fuzzy_like_this]]]; }{[u9HfJxbXRn-8ml19FKBTiA][uber][0]: 
      SearchParseException[[uber][0]: from[-1],size[-1]: 
      Parse Failure [Failed to parse source [ 
       { 
       "fuzzy_like_this": { 
       "fields": [ 
        "pty_firstname", 
        "pty_surname" 
       ], 
       "like_text": "Nathan Andew", 
       "max_query_terms": 12 
       } 
       } 
      ]]]; nested: SearchParseException[[uber][0]: from[-1],size[-1]: 
      Parse Failure [No parser for element [fuzzy_like_this]]]; }]", 
    "status":500 
} 

Trả lời

15

Tôi nghĩ rằng bạn đang thiếu truy vấn một phần, bạn cần phải làm điều gì đó như:

$ curl -XPOST 'http://127.0.0.1:9200/uber/uber/_search?' -d ' 
{ 
    "query" : { 
    "fuzzy_like_this" : { 
     "fields" : ["pty_firstname", "pty_surname"], 
     "like_text" : "Nathan Andew", 
     "max_query_terms" : 12 
    } 
    } 
}' 
+1

Cảm ơn rất nhiều vì đề xuất của bạn, nếu công trình này tôi sẽ cảm thấy ngớ ngẩn. Tôi sẽ đánh dấu đúng sau khi tôi xem nó sau ngày hôm nay. – Nate

+0

Chỉ cần áp dụng thay đổi của bạn và nó đã làm các trick. – Nate