2017-05-04 61 views
0

Elastic/Lucene如何處理未分析的字段?它不必爲該字段值創建倒排索引或位置(我會想象)。它只需要記錄該值?Elastic/Lucene如何處理未分析的字段?

我懷疑它仍然只是一個倒數索引的術語。而且這個詞的位置將始終固定在該領域的開始和該領域的結束。這看起來準確嗎?

+0

您是否打算詢問「......處理未被索引的字段」?可以對字段進行索引而不進行分析(例如,如果您只想將它​​們用於分面/術語查詢等) – Nirmal

回答

1

在ES 2.x中,當聲明string字段時,您有three options關於它是如何編制索引的。 ( - >分析的令牌被存儲在反向索引)

  • index: not_analyzed,在這種情況下,沒有分析該字符串的內容可以用

    1. index: analyzed,在這種情況下,字符串的內容進行分析和索引聲明字段但仍按「原樣」進行索引( - >確切的字符串未反轉地存儲在倒排索引中)。此外,確切的值也存儲在doc values index
    2. index: no,在這種情況下,字符串的內容沒有分析,而不是在所有索引(並且因此不搜索)

    在ES 5.x中,你現在有兩個不同的場類型,即:

    • text其是相同什麼index: analyzed曾經是(上面的情況1)
    • keyword其是相同什麼index: not_analyzed曾經是(CA上述SE 2)

    此外,這兩個字段現在仍然接受index參數,但僅與值truefalse。所以基本上,你現在有四種可能性,但只有三個真正意義:

    1. text + index: true,這是當你要分析你的串並建立索引(同情況1)
    2. 正常情況下, text + index: false,這並沒有真正意義,因爲沒有任何理由來分析一個字符串,而不是指數它
    3. keyword + index: true,當你想爲的是不分析你的字符串,但仍指數的值是(同作爲情況2)
    4. keyword + index: false,當你想不分析你的字符串,而不要索引,要麼(相同的情況下3)

    病例3和4,值也被默認保存在doc values index