2017-05-30 83 views
0

我使用Elasticsearch(2.4),並且我有一個字段的索引,理論上這個字段是在索引步驟中分析的。但是,在實踐中,這不是分析。我想我錯過了什麼,但是什麼?elasticsearch不分析字段

完整索引定義:

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

一個簡單的文件索引:

{ 
    "id": 0, 
    "name": "John" 
} 

其結果是:

{ 
    "_index": "test_index", 
    "_type": "users", 
    "_id": "0", 
    "_version": 1, 
    "found": true, 
    "_source": { 
     "id": 0, 
     "name": "John" 
    } 
} 

我所期待:

{ 
    "_index": "test_index", 
    "_type": "users", 
    "_id": "0", 
    "_version": 1, 
    "found": true, 
    "_source": { 
     "id": 0, 
     "name": [ 
     "Joh", 
     "ohn" 
     ] 
    } 
} 

我對這個指數等多個領域,我想只是name場我自定義分析。

+0

分析過程將不會修改你扔到ES源文件的結果而言。標記'Joh'和'ohn'在您的索引中,但源文檔將永遠不會包含它們。 – Val

+0

好的,謝謝@Val 有沒有辦法獲得索引值? (沒有分析API)? – Juliuss

回答

1

你的分析不會影響_source對象,它只會影響存儲在索引並用於搜索

相關問題