2016-01-20 9 views
6

setzen Zuerst wollte ich Standard-Analysator von ES einstellen, und fehlgeschlagen. Und dann nach anderen Fragen und Webseiten, ich versuche, Standard-Analysator von einem Index zu setzen.Aber es gibt auch einige Probleme.Standard-Analyzer des Index

curl -XPUT localhost:9200/test

curl -XPUT localhost:9200/test/test/_mapping -d'{ 
"test":{ 
    "properties":{ 
    "name":{ 
     "type":"string", 
     "analyzer":"ik" 
    } 
    } 
} 
}' 

und erhalte die Meldung:

I ik Analysator konfiguriert haben, und ich kann einige Felder Analysator eingestellt, hier ist mir Befehl

{"acknowledged":true} 

auch, Es funktioniert wie ich es mir wünsche.

aber, wenn ich versuche, Standard-Analysator von Index zu setzen:

curl -XPOST localhost:9200/test1?pretty -d '{                   "index":{ 
"analysis" : { 
      "analyzer" : { 
       "default" : { 
        "type" : "ik" 
       } 
      } 
     } 
    } 
}' 

I Fehlermeldung erhalten:

{ 
    "error" : { 
    "root_cause" : [ { 
     "type" : "index_creation_exception", 
     "reason" : "failed to create index" 
    } ], 
    "type" : "illegal_argument_exception", 
    "reason" : "no default analyzer configured" 
    }, 
    "status" : 400 
} 

So seltsam, nicht wahr? Wir freuen uns auf Ihre Meinung zu diesem Problem. Vielen Dank! :)

Antwort

5

Sie sind fast da, Sie vermissen einfach /_settings in Ihrem Weg. Mach es stattdessen so. Beachten Sie auch, dass Sie close the index first benötigen und es nach dem Aktualisieren der Analysatoren erneut öffnen müssen.

// close index 
curl -XPOST 'localhost:9200/test1/_close' 

          add this to the path 
            | 
            v 
curl -XPUT localhost:9200/test1/_settings?pretty -d '{                   "index":{ 
"analysis" : { 
      "analyzer" : { 
       "default" : { 
        "type" : "ik" 
       } 
      } 
     } 
    } 
}' 

// re-open index 
curl -XPOST 'localhost:9200/test1/_open' 
+0

I Eingabebefehl wie das Ihre, dann erhalten die Fehlermeldung: { "Fehler": { "Wurzel_Ursache": [{ "type": "invalid_type_name_exception", "Grund": „Mapping-Typ Name [_settings] kann nicht mit '_' " }], "type start": "mapper_parsing_exception", "Grund": "Mapping [_settings]", "caused_by": { "type":" invalid_type_name_exception ", " Grund ":" Mapping-Typ Name [_Einstellungen] kann nicht mit '_' " } },beginnen"status": 400 } und vielleicht möchten Sie mich eingeben: – iurti

+0

curl -XPOST localhost: 9200/test /? Hübsch -d '{ "einstellungen": {"analyse": { "analyzer": { "default": { "type": "ik" } } } } }}‘aber – iurti

+0

Sorry, mein schlecht. Sie müssen den Index zuerst schließen, dann den Befehl und dann den Index erneut öffnen. Auch Sie 'PUT' und nicht' POST'. Das wird funktionieren. Beachten Sie auch, dass der 'ik'-Analyzer bereits existieren muss, sonst wird es nicht funktionieren. – Val

Verwandte Themen