2013-08-19 117 views
4

我想在elasticsearch中索引json文檔。我沒有文檔的架構,它的動態。彈性搜索動態字段存儲爲分析和not_analyzed

我需要將字段存儲爲已分析和未分析。我也需要它是動態的。

  1. 我們可以使用動態模板來實現嗎?
  2. 也有可能保持字段名稱相同的分析和不分析?
  3. 搜索這些字段時是否需要進行特殊處理?

回答

0

您將使用動態模板是,通過爲字段(或字段的方式,例如,所有的字符串)這樣創建動態映射實現這一點:

"dynamic_templates":[ 
     { 
      "template_myStringFields":{ 
       "match":"somepattern", 
       "mapping":{ 
        "type":"multi_field", 
        "fields":{ 
         "{name}":{ 
          "type":"string", 
          "index":"not_analyzed", 
         }, 
         "_tokenized":{ 
          "type":"string", 
          "index":"analyzed", 
         } 
        } 
       } 
      } 
     }... 

然後,以搜索無論是分析還是未分析,如果您不想一次搜索兩個字段,則可以使用「模式匹配」,或者在任何字段匹配的情況下搜索「_all」字段。字段名稱相同,但帶有後綴,例如上例中的myField._tokenized。

+0

我想我需要添加match_mapping_type:string,如果我想限制它爲字符串。 – Govind