2017-05-30 4 views
0

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.

+0

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

+0

OK, danke @Val Gibt es eine Möglichkeit, den indizierten Wert zu erhalten? (ohne die Analyze API)? – Juliuss

Antwort

1

Ihr Analysator wird keinen Einfluss auf die _source Objekt, es wirkt sich nur auf die Ergebnis Begriffe, die

Verwandte Themen