<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 映射改變 原文鏈接 : [https://www.elastic.co/guide/en/elasticsearch/reference/5.0/breaking_50_mapping_changes.html](https://www.elastic.co/guide/en/elasticsearch/reference/5.0/breaking_50_mapping_changes.html) 譯文鏈接 : [http://www.apache.wiki/pages/viewpage.action?pageId=4260763](http://www.apache.wiki/pages/viewpage.action?pageId=4260763) 貢獻者 : [片刻](/display/~jiangzhonglian) ## string字段替換為text / keyword 字段 string字段數據類型已替換為全文分析內容的text字段,以及未分析精確字符串值的keyword字段。 出于向后兼容的目的,在5.x系列期間: * 5.0之前的索引上的string字段將像以前一樣工作。 * 新的string字段可以像以前一樣添加到5.0之前的索引。 * text和keyword字段也可以添加到5.0之前的索引。 * 當將string字段添加到新索引時,如果可能,字段映射將重寫為text或keyword字段,否則將拋出異常。 使用string字段可能的某些配置不再適用于 text / keyword 字段,例如在未分析的keyword字段上啟用term_vectors。 ## 默認字符串映射 字符串映射現在具有以下默認映射: ``` { "type": "text", "fields": { "keyword": { "type": "keyword", "ignore_above": 256 } } } ``` 這允許對原始字段名稱執行全文搜索,并在子關鍵字字段上對聚合進行排序和運行。 ## 數字字段 數字字段現在用完全不同的數據結構(稱為BKD樹)索引,預期需要更少的磁盤空間,并且對于范圍查詢比之前索引數字的方式更快。 術語查詢現在將返回常數分數,而由于文檔頻率的貢獻,它們用于返回較高分數的罕見術語,這種新的BKD結構不記錄。 如果需要評分,那么建議將數字字段映射為[`keyword`](https://www.elastic.co/guide/en/elasticsearch/reference/5.0/keyword.html)。 請注意,此?[`keyword`](https://www.elastic.co/guide/en/elasticsearch/reference/5.0/keyword.html "Keyword datatype")?映射不需要替換數字映射。 例如,如果您需要在數字字段上同時排序和評分,則可以使用?`[fields](https://www.elastic.co/guide/en/elasticsearch/reference/5.0/multi-fields.html "fields")?`將其映射為number和keyword: ``` PUT my_index { "mappings": { "my_type": { "properties": { "my_number": { "type": "long", "fields": { "keyword": { "type": "keyword" } } } } } } } ``` 此外,precision_step參數現在不相關,并且將在5.0之后或之后創建的索引上被拒絕。 ## geo_point字段 像數值字段一樣,地理點字段現在使用新的BKD樹結構。由于此結構基本上設計用于多維空間數據,因此不再需要或支持以下字段參數:geohash,geohash_prefix,geohash_precision,lat_lon。從API角度仍然支持Geohash,仍然可以使用.geohash字段擴展訪問,但它們不再用于索引地理點數據。 ## _timestamp和_ttl _timestamp和_ttl字段已棄用,現在已刪除。作為_timestamp的替代品,您應該使用應用程序端的當前時間戳填充常規日期字段。對于_ttl,您應該在適用時使用基于時間的索引,或者在時間戳字段上使用范圍查詢cron刪除查詢 ## index 屬性 在所有字段數據類型(除了已棄用的字符串字段)中,index屬性現在只接受true / false,而不接受not_analyzed / no。字符串字段仍接受analyze / not_analyzed / no。 ## 未索引字段上的文檔值 以前,將字段設置為index:no也會禁用doc值。現在,除非將doc_values設置為false,否則會始終對數字和布爾字段啟用文檔值。 ## 浮點使用float而不是double 當動態映射包含浮點數的字段時,該字段現在默認使用float而不是double。 推理是浮點在大多數情況下應該足夠了,但會顯著降低存儲要求。 ## norms norms現在采用布爾而不是對象。 這個布爾值是norms.enabled的替換。 沒有norms.loading的替代,因為迫切的加載規范是不再有用了,現在規范是基于磁盤的。 ## fielddata.format 在用于在字段上隱式啟用文檔值的映射中設置fielddata.format:doc_values。 這不再有效:啟用或停用文檔值的唯一方法是使用映射的doc_values屬性。 ## fielddata.filter.regex 正則表達式過濾器不再受支持,將在升級時刪除。 ## 源變換已刪除 源變換要素已刪除。 相反,使用ingest管道。 ## 字段映射限制 為了防止映射爆炸,以下限制應用于在5.x中創建的索引: * 索引中的最大字段數限制為1000。 * 字段的最大深度(1加上對象或嵌套父對象的數量)限制為20。 * 索引中嵌套字段的最大數量限制為50。 有關更多信息,請參閱“[防止映射爆炸的設置](https://www.elastic.co/guide/en/elasticsearch/reference/5.0/mapping.html#mapping-limit-settings)”一節。 ## _parent字段不再索引 父文檔和子文檔之間的聯接不再依賴于索引字段,因此從5.0.0開始,_parent字段不再索引。為了查找引用特定父標識的文檔,可以使用新的parent_id查詢。 GET響應和搜索響應內的命中仍包括_parent鍵下的父標識。 ## 源format選項 _source映射不再支持format選項。在升級到5.0之前創建的索引仍然可以被接受,以實現向后兼容性,但是它沒有效果。在5.0之前或之后創建的指數將拒絕此選項。 ## 對象符號 核心類型不再支持對象符號,用于提供每個文檔的提升如下: ``` { "value": "field_value", "boost": 42 } ``` ## 提高對_all的查詢的準確性 _all上的每字段增強現在壓縮為單個字節,而不是先前使用的4個字節。 雖然這將使索引更具空間效率,但這也意味著索引時間提升將不太準確地編碼。 ## _ttl和_timestamp不能被創建 您不能再使用_ttl或_timestamp創建索引。 在5.0之前創建的啟用的索引將繼續工作。 您應該在新索引中替換_timestamp,方法是在生成數據的應用程序中或使用如下所示的ingest pipline向源中添加字段: ``` PUT _ingest/pipeline/timestamp { "description" : "Adds a timestamp field at the current time", "processors" : [ { "set" : { "field": "timestamp", "value": "{{_ingest.timestamp}}" } } ] } PUT newindex/type/1?pipeline=timestamp { "example": "data" } GET newindex/type/1 ``` 哪個生產 ``` { "_source": { "example": "data", "timestamp": "2016-06-21T18:48:55.560+0000" }, ... } ``` 如果您有使用2.x創建的舊索引已啟用_timestamp,那么您可以將其遷移到具有reindex的源中的時間戳字段的新索引: ``` POST _reindex { "source": { "index": "oldindex" }, "dest": { "index": "newindex" }, "script": { "lang": "painless", "inline": "ctx._source.timestamp = ctx._timestamp; ctx._timestamp = null" } } ``` 可以使用基于時間的索引名稱(首選)替換_ttl,或者通過添加在源文檔中的時間戳字段上運行按查詢刪除的cron作業。如果你有這樣的文件: ``` POST index/type/_bulk {"index":{"_id":1}} {"example": "data", "timestamp": "2016-06-21T18:48:55.560+0000" } {"index":{"_id":2}} {"example": "data", "timestamp": "2016-04-21T18:48:55.560+0000" } ``` 然后,您可以從6月1日之前刪除所有文檔: ``` POST index/type/_delete_by_query { "query": { "range" : { "timestamp" : { "lt" : "2016-05-01" } } } } ``` 請記住,從索引中刪除文檔與刪除整個索引相比非常昂貴。這就是為什么推薦基于時間的索引超過這種事情,為什么_ttl首先被廢棄。 ## 不支持空字段名稱 在5.0之后不允許在映射中出現空字段名稱。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看