2017-05-04 10 views
0

Elastic/Lucene은 분석되지 않은 필드로 무엇을합니까? 그것은 그 필드 값에 대해 역 색인 또는 위치를 만들 필요가 없습니다 (상상할 것입니다). 그 값을 기록하면 되나요?Elastic/Lucene은 분석되지 않은 필드로 무엇을합니까?

나는 한 용어 만 사용하여 역 색인을 만든다고 생각합니다. 그리고 용어의 위치는 항상 필드의 시작과 필드의 끝 부분에 고정됩니다. 그게 정확한 것 같니?

+0

"색인이 생성되지 않은 입력란은 어떻게해야합니까?"라는 질문을하셨습니까? 필드를 분석하지 않고 필드를 인덱싱 할 수 있습니다 (예 : 패싯 만/용어 쿼리 등에 사용하려는 경우) – Nirmal

답변

1

ES 2.x에서 string 필드를 선언 할 때 색인 방법에 대해 three options이 있습니다. (-> 분석 토큰이 반전 된 인덱스에 저장된) 문자열의 내용이 분석되지 않은 경우

  • index: not_analyzed을, 당신은 문자열의 내용을 분석하고 색인 된 경우

    1. index: analyzed과 분야를 선언 할 수 있습니다 그러나 "그대로"색인 된 (-> 정확한 문자열은 거꾸로 된 색인에 변경되지 않고 저장되었습니다). 또한, 정확한 값은이 경우 문자열의 내용은, ES 5.x의에서

    전혀 색인 (및 검색 할 수 없습니다)을 분석하지하지되었으며, doc values index

  • index: no에 저장됩니다 index: analyzed이 (상기의 경우 1) index: not_analyzed 예전 것과 동일
  • keyword 예전 것과 동일

    • text (CA : 이제, 즉 두 개의 다른 필드 타입을 가질 위의 SE 2) 또한

    , 두 필드는 이제 여전히 index 매개 변수를 수락하지만 값 true 또는 false와. 그러니까 기본적으로, 당신은 지금 네 가지 가능성을 가지고 있지만, 단지 세 정말 할 의미 : 당신이 당신의 문자열과 (케이스 1과 동일) 인덱스 그것을

  • 을 분석 할 일반적인 경우입니다

    1. text + index: true, text + index: false 문자열을 분석 할 이유가 없기 때문에 문자열을 분석 할 이유가 없으므로
    2. keyword + index: true 문자열을 분석하지 않고 그대로 값을 색인하려는 경우 (동일한 케이스 2)
    3. keyword + 당신의 문자열을 분석하지하고자 할 때입니다 index: false, 그리고 인덱스 그것 중 하나 (같은 경우 3 등)의 경우 3, 4

    이 값도 기본적으로 doc values index에 저장됩니다.