2016-10-21 21 views
0

與溼地的價值,而不映射期限篩選我有一個要求,我不能將任何映射添加到ElasticSearch索引,因爲所有的指標是動態的,在運行時獲得創建並都有不同的領域(只有5常見的) 。因爲這個問題,我使用URL的術語過濾器(例如http://www.domain.com/a/b)或mimetype(例如image/jpeg)。在不添加映射的情況下繞過斜線或其他特殊字符的最佳方式是什麼?在ElasticSearch

回答

0

基於@tcarmet的回答,這就是我最終使用的模板。

{ 
    "enable_raw_string": { 
     "order": 0, 
     "template": "*", 
     "settings": {}, 
     "mappings": { 
      "_default_": { 
      "dynamic_templates": [ 
       { 
       "strings": { 
        "mapping": { 
        "type": "string", 
        "fields": { 
         "raw": { 
         "ignore_above": 256, 
         "index": "not_analyzed", 
         "type": "string" 
         } 
        } 
        }, 
        "match_mapping_type": "string" 
       } 
       } 
      ] 
      } 
     }, 
     "aliases": {} 
     } 
} 

然後,我可以過濾x.raw而不是x。

1

你可以將模板添加到您的elasticsearch指數

在那裏,你可以指定你的指標和評估將在運行時自動爲您的所有數據被創建。

+0

如果我不知道哪些字段將添加到索引中,我該如何使用模板?這些指數只有5個共同的領域,其餘都是不同的。 – juminoz

+1

通常模板可以生成多個字段而不指定他的名字。它們可以自動生成。 – tcarmet

+0

但它如何知道使用哪種映射?如果我有20個字段,則無法確定是應該分析還是不分析,對嗎?目前,我們依靠ElasticSearch的默認映射,這可以在95%的時間內完成。我知道查詢你可以在請求中指定一個分析器,但我沒有看到爲過濾器做同樣事情的方法。 – juminoz