Elasticsearch 參考指南(索引模塊)

索引模塊

索引模塊是按索引建立的模塊,控制與索引相關的全部方面。正則表達式

索引設置

能夠按索引設置索引級別,設置多是:緩存

靜態安全

  • 它們只能在索引建立時或在關閉的索引上設置。

動態性能

  • 能夠使用update-index-settings API在活動索引上更改它們。
更改關閉的索引上的靜態或動態索引設置可能致使不正確的設置,在不刪除和從新建立索引的狀況下,不可能糾正這些設置。

靜態索引設置

下面是與任何特定索引模塊無關的全部靜態索引設置的列表:優化

index.number_of_shards日誌

  • 索引應該具備的主碎片的數量,默認爲1。此設置只能在建立索引時設置,它不能在關閉的索引上更改,注意:每一個索引的碎片數量限制爲1024個,這種限制是一種安全限制,以防止意外地建立可能因爲資源分配而破壞集羣穩定的索引。能夠在集羣的每一個節點上經過指定系統變量export ES_JAVA_OPTS="-Des.index.max_number_of_shards=128"來修改該限制。

index.shard.check_on_startupcode

  • 碎片在打開以前是否應該檢查是否損壞,當檢測到損壞時,它將阻止碎片被打開,接受:

    false:(默認)打開碎片時不要檢查是否有損壞。
    checksum:檢查物理損壞。
    true:檢查物理和邏輯損壞,就CPU和內存使用而言,這要昂貴得多。

index.codec索引

  • 默認值使用LZ4壓縮壓縮存儲的數據,可是能夠將這個值設置爲best_compression,它使用DEFLATE得到更高的壓縮比,代價是下降存儲字段的性能。若是你正在更新壓縮類型,則新的壓縮類型將在段合併後應用,段合併能夠使用強制合併來強制執行。

index.routing_partition_sizetoken

  • 自定義路由值能夠轉到的碎片數,默認值爲1,只能在建立索引時設置,這個值必須小於index.number_of_shards,除非index.number_of_shards值也是1

index.load_fixed_bitset_filters_eagerly生命週期

  • 指示是否爲嵌套查詢預加載緩存過濾器,可能的值爲true(默認值)和false

動態索引設置

如下是與任何特定索引模塊無關的全部動態索引設置列表:

index.number_of_replicas

  • 每一個主碎片擁有的副本數量,默認爲1

index.auto_expand_replicas

  • 根據集羣中數據節點的數量自動擴展副本的數量,設置爲以破折號分隔的下界和上界(例如0-5),或將all用於上界(例如0-all),默認爲false(即禁用)。注意,自動擴展的副本數量沒有考慮任何其餘分配規則,好比碎片分配感知、過濾或每一個節點的總碎片,若是適用的規則阻止分配全部副本,則可能致使集羣健康狀態變爲黃色。

index.search.idle.after

  • 一個碎片在被認爲是搜索空閒以前不能接收搜索或獲取請求的時間(默認是30s)。

index.refresh_interval

  • 多久執行一次刷新操做,使最近對索引的更改對搜索可見,默認爲1s,能夠設置爲-1以禁用刷新。若是沒有顯式設置此設置,至少在index.search.idle.after秒內沒有看到搜索流量的碎片在收到搜索請求以前不會收到後臺刷新,當刷新掛起時,搜索到空閒碎片,將等待下一次後臺刷新(在1秒內)。此行爲的目的是在不執行搜索的默認狀況下自動優化批量索引,爲了不這種行爲,應該將顯式值1s設置爲刷新間隔。

index.max_result_window

  • 此索引的搜索from + size的最大值,默認爲10000,搜索請求佔用的堆內存和時間與from + size成正比,這限制了內存。

index.max_inner_result_window

  • from + size的最大值,用於將內部命中定義和頂部命中聚合到此索引,默認爲100,內部命中和頂部命中聚合佔用堆內存,而且時間與from + size成正比,這限制了內存。

index.max_rescore_window

  • 在此索引的搜索中,rescore請求的window_size的最大值,默認爲index.max_result_window,其默認值爲10000,搜索請求佔用堆內存,時間與max(window_size, from + size)成正比,這限制了內存。

index.max_docvalue_fields_search

  • 查詢中容許的docvalue_fields的最大數量,默認爲100,Doc-value字段代價高昂,由於它們可能致使每一個字段每一個文檔的搜索。

index.max_script_fields

  • 查詢中容許的最大script_fields數量,默認爲32

index.max_ngram_diff

  • NGramTokenizerNGramTokenFiltermin_grammax_gram之間容許的最大差別,默認爲1

index.max_shingle_diff

  • 對於ShingleTokenFiltermax_shingle_sizemin_shingle_size之間容許的最大差別,默認爲3

index.blocks.read_only

  • 設置爲true使索引和索引元數據只讀,設置爲false容許寫入和元數據更改。

index.blocks.read_only_allow_delete

  • index.blocks.read_only相同,可是容許刪除索引來釋放資源。

index.blocks.read

  • 設置爲true以禁用對索引的讀取操做。

index.blocks.write

  • 設置爲true可禁用對索引的數據寫操做,與read_only不一樣,此設置不影響元數據,例如,能夠用write塊關閉索引,但不能用read_only塊關閉索引。

index.blocks.metadata

  • 設置爲true可禁用索引元數據的讀寫。

index.max_refresh_listeners

  • 索引的每一個碎片上可用的刷新偵聽器的最大數量,這些偵聽器用於實現refresh=wait_for

index.analyze.max_token_count

  • 使用_analyze API能夠生成的最大令牌數量,默認爲10000

index.highlight.max_analyzed_offset

  • 爲高亮顯示請求分析的最大字符數,此設置僅適用於在索引沒有偏移量或術語向量的文本上請求高亮顯示時,默認爲1000000

index.max_terms_count

  • 能夠在terms查詢中使用的術語的最大數量,默認爲65536

index.max_regex_length

  • 可用於Regexp查詢的正則表達式的最大長度,默認爲1000

index.routing.allocation.enable

  • 控制此索引的碎片分配,它能夠被設置爲:

    • all(默認值)— 容許爲全部碎片分配碎片。
    • primaries — 只容許爲主碎片分配碎片。
    • new_primary — 只容許爲新建立的主碎片分配碎片。
    • none — 不容許碎片分配。

index.routing.rebalance.enable

  • 啓用此索引的碎片從新平衡,它能夠被設置爲:

    • all(默認值)—容許對全部碎片進行碎片再平衡。
    • primaries — 只容許對主碎片進行碎片再平衡。
    • replicas — 只容許對複製碎片進行碎片再平衡。
    • none — 不容許再平衡碎片。

index.gc_deletes

  • 已刪除文檔的版本號仍可用於進一步版本化操做的時間長度,默認爲60s

index.default_pipeline

  • 此索引的默認攝取節點管道,若是設置了默認管道且管道不存在,則索引請求將失敗,能夠使用pipeline參數重寫默認值,特殊管道名稱_none表示不該該運行攝取管道。

其餘索引模塊中的設置

其餘索引設置在索引模塊中可用:

分析

  • 用於定義分析程序、令牌器、令牌過濾器和字符過濾器的設置。

索引碎片分配

  • 控制將碎片分配到節點的位置、時間和方式。

映射

  • 爲索引啓用或禁用動態映射。

合併

  • 控制後臺合併進程如何合併碎片。

類似性

  • 配置自定義類似性設置,以自定義搜索結果的評分方式。

慢日誌

  • 控制記錄查詢和獲取請求的速度。

存儲

  • 配置用於訪問碎片數據的文件系統類型。

事務日誌

  • 控制事務日誌和後臺刷新操做。

X-Pack索引設置

索引生命週期管理

  • 指定索引的生命週期策略和滾動別名。
相關文章
相關標籤/搜索