Ich habe diesen Index mit pipe
als benutzerdefinierten Analysator. Wenn ich versuche, es zu testen, gibt es jedes Zeichen zurück, und keine durch Pipe abgegrenzten Wörter.Testen eines Elasticsearch benutzerdefinierten Analysator - Rohr-getrennte Schlüsselwörter
Ich versuche, für einen Anwendungsfall zu konstruieren, wo meine Eingabezeile keywords
aussieht:und EL wird Übereinstimmungen zurückgeben, nachdem es explodiert wurde.
{
"keywords": {
"aliases": {
},
"mappings": {
"cloud": {
"properties": {
"keywords": {
"type": "text",
"analyzer": "pipe"
}
}
}
},
"settings": {
"index": {
"number_of_shards": "5",
"provided_name": "keywords",
"creation_date": "1513890909384",
"analysis": {
"analyzer": {
"pipe": {
"type": "custom",
"tokenizer": "pipe"
}
},
"tokenizer": {
"pipe": {
"pattern": "|",
"type": "pattern"
}
}
},
"number_of_replicas": "1",
"uuid": "DOLV_FBbSC2CBU4p7oT3yw",
"version": {
"created": "6000099"
}
}
}
}
}
Wenn ich versuche es diese guide folgenden zu testen.
curl -XPOST 'http://localhost:9200/keywords/_analyze' -d '{
"analyzer": "pipe",
"text": "pipe|pipe2"
}'
Ich bekomme Char-by-Char Ergebnisse zurück.
{
"tokens": [
{
"token": "p",
"start_offset": 0,
"end_offset": 1,
"type": "word",
"position": 0
},
{
"token": "i",
"start_offset": 1,
"end_offset": 2,
"type": "word",
"position": 1
},
{
"token": "p",
"start_offset": 2,
"end_offset": 3,
"type": "word",
"position": 2
},
{
"token": "e",
"start_offset": 3,
"end_offset": 4,
"type": "word",
"position": 3
},
passieren Sie wissen, wie den Tokenizer neu schreiben, ohne den Index neu zu erstellen? – Pentium10
Sie können den Analysator in den Indexeinstellungen aktualisieren und dann update_by_query auf Ihrem Index aufrufen, und er aktualisiert die Daten – Val
, um zu aktualisieren, musste ich den Index schließen und die put auf/_settings anwenden, dann den Index erneut öffnen, warten für Shards zur Initialisierung – Pentium10