7.4.3 - elasticsearch 색인 필드 형식 매개 변수

41464 단어 ELKelasticsearch
fielddata 대부분의 필드 는 기본적으로 색인 을 만들어 조회 하기 편리 하지만 정렬, 집합 및 스 크 립 트 접근 필드 값 에 대해 서 는 별도의 접근 방식 이 필요 합 니 다.검색 작업 은 '어떤 doc 가 검색 어 를 포함 하 는 지' 에 대답 해 야 하고 정렬 과 집합 은 'doc 에서 이 필드 의 값 이 얼마 인지' 에 대답 해 야 합 니 다.대부분의 필드 는 문서 인덱스 를 통 해 디스크 에 기본적으로 설 정 된 docvalues 는 데이터 접근 을 하지만 text 필드 는 doc 를 지원 하지 않 습 니 다.values; text 대신 조 회 를 사용 할 때 메모리 데이터 구조 – fielddata 입 니 다. 이 구 조 는 필드 를 집합, 정렬 또는 스 크 립 트 에 사용 할 때 구 축 됩 니 다.디스크 에서 각 단락 의 전체 역방향 색인 을 읽 은 다음 에 단어 와 문서 의 관 계 를 반전 시 키 고 결 과 를 jvm 메모리 에 저장 합 니 다.fielddata text fielddata 는 대량의 메모 리 를 소모 하기 때문에 특히 대량의 text 필드 를 불 러 올 때;fielddata 가 더미 에 불 러 오 면 segment 의 수명 주기 내 에 일치 하 게 쌓 여 있 습 니 다. 또한 fielddata 를 불 러 오 는 것 도 시간 이 걸 리 는 과정 입 니 다. 이 는 사용자 가 지연 되 기 때문에 기본 적 인 상황 에서 fielddata 인 자 를 사용 하지 않 습 니 다.text 필드 에 대한 정렬, 집합 또는 스 크 립 트 작업 을 시도 할 때 다음 과 같은 이상 을 던 집 니 다.
PUT param_fielddata_index
{
  "mappings": {
    "properties": {
      "field_data":{
        "type": "text"
      }
    }
  }
}

PUT param_fielddata_index/_doc/1
{
  "field_data":"aaa"
}

PUT param_fielddata_index/_doc/2
{
  "field_data":"bbb"
}

PUT param_fielddata_index/_doc/3
{
  "field_data":"ccc"
}

GET param_fielddata_index/_search
{
  "sort": [
    {
      "field_data": {
        "order": "desc"
      }
    }
  ]
}

발생 할 수 있 는 이상 정보: Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [field_data] in order to load field data by uninverting the inverted index. Note that this can use significant memory.fielddata 인 자 를 설정 하기 전에 이렇게 하 는 것 이 가치 가 있 는 지 를 고려 해 야 합 니 다. 일반적인 text 필드 문제 처리 에 서 는 text 필드 에 키워드 필드 를 추가 로 매 핑 하고 키워드 필드 를 사용 하여 정렬, 집합, 스 크 립 트 작업 을 합 니 다.
PUT param_fielddata_index/_mapping
{
  "properties":{
    "field_data":{
      "type":"text",
      "fields":{
        "keyword":{
          "type":"keyword"
        }
      }
    }
  }
}

fielddata 설정 이 필요 하 다 면 다음 을 참고 하 십시오.
PUT param_fielddata_index
{
  "mappings": {
    "properties": {
      "field_data":{
        "type": "text",
        "fielddata": true
      }
    }
  }
}

fielddata 필 터 는 메모리 에 불 러 오 는 단 어 량 을 줄 여 메모리 사용 을 줄 일 수 있 습 니 다.주파수 필 터 는 단어 관련 문서 의 빈 도 를 최소 와 최대 값 사이 에 불 러 올 수 있 습 니 다. 수 치 는 정확 한 값 이나 백분율 로 표시 할 수 있 습 니 다. 빈 도 는 segment 에 따라 계산 되 며 백분율 은 이 필드 값 을 가 진 문서 의 수량 을 기반 으로 합 니 다. segment 의 모든 문서 가 아 닙 니 다.사용 을 통 해 minsegment_size 는 이 segment 에 포 함 된 최소 문서 수 를 지정 하면 작은 segment 를 제거 할 수 있 습 니 다.
PUT param_fielddata_index
{
  "mappings": {
    "properties": {
      "field_data":{
        "type": "text",
        "fielddata": true,
        "fielddata_frequency_filter": {
          "min":0.001,
          "max":0.1,
          "min_segment_size":500
        }
      }
    }
  }
}

format 필드 형식 을 date 로 지정 하 는 포맷 형식 입 니 다.
ignore_above ( ) , api , , ( );
//  message   keyword    ignore_above    20   
PUT param_ignore_above_index
{
  "mappings": {
    "properties": {
      "message":{
        "type": "keyword",
        "ignore_above": 20
      }
    }
  }
}
//       ,message    20       
PUT /param_ignore_above_index/_doc/1
{
  "message":"Syntax error"
}
//       ,  message        
PUT param_ignore_above_index/_doc/2
{
  "message":"Syntax error with some long stacktrace"
}
//         ,              
GET param_ignore_above_index/_search
{
  "aggs": {
    "message": {
      "terms": {
        "field": "message",
        "size": 10
      }
    }
  }
}

ignore_malformed , ; ignore_malformed true, , , ;
PUT param_ignore_malformed_index
{
  "mappings": {
    "properties": {
      "age":{
        "type": "integer",
        "ignore_malformed": true
      },
      "level":{
        "type": "integer"
      }
    }
  }
}
//    ,age        
PUT param_ignore_malformed_index/_doc/1
{
  "text":"test ignore_malformed",
  "age":"foo"
}
//    
PUT param_ignore_malformed_index/_doc/2
{
  "text":"test ignore_malformed",
  "level":"foo"
}
//  ignore_malformed          ,           
//    :number_format_exception
GET param_ignore_malformed_index/_search
{
  "query": {
    "term": {
      "age": {
        "value": "foo"
      }
    }
  }
}

ignore_malformed 매개 변 수 는 다음 형식 필드 에서 설정 할 수 있 습 니 다.
유형
관련 유형 값
numeric
long,integer,short,byte,double,float,half_float,scaled_float
date
date,date_nanos
geo
geo_point,geo_shape
ip
IPv4,IPv6
색인 단계 의 매개 변수 설정 index.mapping.ignore_malformed , , ignore_malformed , ( );
//    ignore_malformed  ,                    
PUT param_global_ignore_malformed_index
{
  "settings": {
    "index.mapping.ignore_malformed":true
  },
  "mappings": {
    "properties": {
      "age":{
        "type": "byte"
      },
      "level":{
        "type": "integer",
        "ignore_malformed": false
      }
    }
  }
}
//      
GET param_global_ignore_malformed_index/_mapping

//  ,age  ignore_malform        
PUT param_global_ignore_malformed_index/_doc/1
{
  "text":"global ignore malformed param setting",
  "age":"foo"
}
//  ,level  ignore_malform        
PUT param_global_ignore_malformed_index/_doc/2
{
  "text":"global ignore malformed param setting",
  "level":"foo"
}

사용 불가 ignoremalformed 매개 변수의 유형: 1), nested 형식;2), object 유형;3), range 유형;
//  ,Mapping definition for [limit] has unsupported parameters:  [ignore_malformed : true]
PUT param_ignore_malformed_limit_index
{
  "mappings": {
    "properties": {
      "limit":{
        "type": "object",
        "ignore_malformed": true
      }
    }
  }
}

index index , true/false , true, false
PUT param_index_set_index
{
  "mappings": {
    "properties": {
      "limit":{
        "type": "keyword",
        "index": false
      }
    }
  }
}

PUT /param_index_set_index/_doc/1
{
  "limit":"index param test"
}

//  ,Cannot search on field [limit] since it is not indexed.
GET param_index_set_index/_search
{
  "query": {
    "term": {
      "limit": {
        "value": "index param test"
      }
    }
  }
}

index_options ,index_options text , ; 이 매개 변 수 는 다음 과 같은 매개 변수 일 뿐 입 니 다.
유형
설명 하 다.
docs
문서 번호 에 만 색인 을 만 들 면 '이 필드 에 존재 하 는 지' 에 대한 질문 에 대답 할 수 있 습 니 다.
freqs
문서 번호 와 단어 주파수 에 대한 색인 을 만 들 고 단어 주파 수 는 단어 관련 도 점 수 를 계산 하 는 데 사 용 됩 니 다. (단어 중복 횟수 가 많 을 수록 점수 가 높 습 니 다)
positions
기본 값, 문서 번호, 단어 주파수 및 단어 위치 에 색인 을 만 들 고 구문 조회 에 사용 할 수 있 습 니 다.
offsets
문서 번호, 단어 주파수, 단어 위치 및 단어 시작 위치 (단어 문자열 을 원본 문자열 에 표시 하 는 데 사용) 에 대한 색인 을 만 들 고 하 이 라이트 디 스 플레이 를 가속 화 하 는 데 사용 할 수 있 습 니 다.tips: : , , ;
//   phraseQuery
PUT param_index_options_index_1
{
  "mappings": {
    "properties": {
      "text":{
        "type": "text",
        "index_options": "docs"
      }
    }
  }
}

PUT param_index_options_index_1/_doc/1
{
  "text":"hello world"
}

GET param_index_options_index_1/_search
{
  "query": {
    "match": {
      "text": "hello world"
    }
  },
  "highlight": {
    "fields": {
      "text": {}
    }
  }
}


PUT param_index_options_index_2
{
  "mappings": {
    "properties": {
      "text":{
        "type": "text",
        "index_options": "freqs"
      }
    }
  }
}

PUT param_index_options_index_2/_doc/1
{
  "text":"hello world"
}

//  ,freqs   PhraseQuery,field:[text] was indexed without position data; cannot run PhraseQuery
GET param_index_options_index_2/_search
{
  "query": {
    "match_phrase": {
      "text": "hello world"
    }
  }
}

GET param_index_options_index_2/_search
{
  "query": {
    "match": {
      "text": "hello world"
    }
  }
}

PUT param_index_options_index_3
{
  "mappings": {
    "properties": {
      "text":{
        "type": "text",
        "index_options": "positions"
      }
    }
  }
}

PUT param_index_options_index_3/_doc/1
{
  "text":"hello world"
}

GET param_index_options_index_3/_search
{
  "query": {
    "match": {
      "text": "hello world"
    }
  },
  "highlight": {
    "fields": {
      "text": {}
    }
  }
}


PUT param_index_options_index_4
{
  "mappings": {
    "properties": {
      "text":{
        "type": "text",
        "index_options": "offsets"
      }
    }
  }
}

PUT param_index_options_index_4/_doc/1
{
  "text":"hello world"
}

GET param_index_options_index_4/_search
{
  "query": {
    "match": {
      "text": "hello world"
    }
  },
  "highlight": {
    "fields": {
      "text": {}
    }
  }
}

index_phrases (term) , true/false, false, ( ); , ;
index_prefixes index_prefixed 매개 변 수 는 단어 원 에 접두사 색인 을 하여 단어 원 접두사 조회 속 도 를 높 일 수 있 습 니 다. 다음 매개 변 수 를 선택 할 수 있 습 니 다.
유형
설명 하 다.
min_chars
최소 색인 문자 길 이 는 0 이상 이 어야 합 니 다. 기본 값 은 2 (포함) 입 니 다.
max_chars
최대 색인 문자 길 이 는 20 보다 작 아야 합 니 다. 기본 값 은 5 (포함) 입 니 다.
PUT param_index_prefix_index
{
  "mappings": {
    "properties": {
      "text":{
        "type": "text",
        "index_prefixes":{
          "min_chars":2,
          "max_chars":10
        }
      }
    }
  }
}

PUT param_index_prefix_index/_doc/1
{
  "text":"Once the RestClient has been created, requests can be sent by calling either performRequest or performRequestAsync"
}

PUT param_index_prefix_index/_doc/2
{
  "text":"performRequest is synchronous and will block the calling thread and return the Response when the request is successful or throw an exception if it fails"
}

GET param_index_prefix_index/_search
{
  "query": {
    "prefix": {
      "text": {
        "value": "perform"
      }
    }
  }
}

//  , prefix       min_chars null_pointer_exception
GET param_index_prefix_index/_search
{
  "query": {
    "prefix": {
      "text": {
        "value": "p"
      }
    }
  }
}

// prefix       max_chars        ,      
GET param_index_prefix_index/_search
{
  "query": {
    "prefix": {
      "text": {
        "value": "performRequest"
      }
    }
  }
}

좋은 웹페이지 즐겨찾기