Ich benutze Elasticsearch (2.4) und ich habe einen Index mit einem Feld, das in der Theorie auf Index Schritt analysiert wird. Aber in der Praxis wird es nicht analysiert. Ich glaube, ich vermisse etwas, aber was?Elasticsearch nicht Feld
Die komplette Indexdefinition:
{
"test_index": {
"aliases": {},
"mappings": {
"users": {
"properties": {
"name": {
"type": "string",
"analyzer": "my_analyser"
},
"id": {
"type": "long"
}
}
}
},
"settings": {
"index": {
"index_directly": "1",
"number_of_shards": "1",
"cron_limit": "50",
"creation_date": "1496150121337",
"analysis": {
"analyzer": {
"standard": {
"type": "standard",
"max_token_length": "255",
"stopwords": ""
},
"my_analyser": {
"type": "custom",
"tokenizer": "my_tokenizer"
}
},
"tokenizer": {
"my_tokenizer": {
"token_chars": [
"letter",
"digit"
],
"min_gram": "3",
"type": "ngram",
"max_gram": "3"
}
}
},
"fields": {
"name": {
"type": "text"
}
},
"number_of_replicas": "0",
"uuid": "lmwPFWoISlC2knZZn2nNZQ",
"version": {
"created": "2040599"
}
}
},
"warmers": {}
}
}
Ein einfaches Dokument zu indizieren:
{
"id": 0,
"name": "John"
}
Das Ergebnis:
{
"_index": "test_index",
"_type": "users",
"_id": "0",
"_version": 1,
"found": true,
"_source": {
"id": 0,
"name": "John"
}
}
Was ich erwarte:
{
"_index": "test_index",
"_type": "users",
"_id": "0",
"_version": 1,
"found": true,
"_source": {
"id": 0,
"name": [
"Joh",
"ohn"
]
}
}
Ich habe andere Felder auf diesen Index, und ich möchte, dass meine eigenen Analysator nur auf name
Feld.
Der Analyseprozess das Quelldokument ändern werden nicht in ES Sie werfen für die Suche in Index gespeichert und verwendet werden. Die Token 'Joh' und' ohn' sind in Ihrem Index, aber das Quelldokument enthält sie niemals. – Val
OK, danke @Val Gibt es eine Möglichkeit, den indizierten Wert zu erhalten? (ohne die Analyze API)? – Juliuss