2013-08-08 16 views
7

Ich habe Schwierigkeiten, FLT in das Prototyp-ES-System zu implementieren, das ich erstelle. Ich habe mir die Dokumentation auf der Elasticsearch-Website angeschaut und obwohl es dort ist, kann ich nicht scheinen, dass das funktioniert. Vielleicht kann jemand da draußen mir einen kleinen Einblick geben, wie man das macht.Fuzzy so (FLT) - ElasticSearch

Ich kann nicht scheinen, irgendwelche Beispiele dafür zu finden, die an anderer Stelle im Netz gemacht werden, aber vielleicht sind meine Google-Kenntnisse heute nicht bis zum Kratzer. Dies ist, was ich habe es geschafft, so weit zu konstruieren -

$ 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 
    } 
}' 

Hier ist die Fehlermeldung, die ich von meiner Aufforderung erhalte auf die Anfrage zu senden -

{ 
    "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 
} 

Antwort

15

Ich denke, dass Sie die fehlen Frage Teil, müssen Sie etwas tun wie:

$ 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

Vielen Dank für Ihren Vorschlag, wenn das funktioniert, werde ich eher albern fühlen. Ich werde es korrekt markieren, wenn ich es mir später heute ansehe. – Nate

+0

Nur Ihre Änderung angewendet und es hat den Trick gemacht. – Nate