ElasticSearch 학습노트 6 매핑 메타 필드(Mapping Meta-Fields)
ElasticSearch 학습노트 6 매핑 메타 필드(Mapping Meta-Fields)
Meta-Fields
각 문서에는 연관된 메타필드가 있습니다. 예를 들어 _index、_type 및_id 메타필드.메타필드는 맵핑 맵에서 문서 자체의 정보를 설명하는 필드입니다.
Identity meta-fields(문서 표시 메타필드)
_index
문서가 속한 색인.
다중 색인 조회 시 특정 색인 이름에서만 조회할 수 있는 경우도 있습니다._인덱스 필드는 인덱스 이름에 대해term 조회,terms 조회, 집합 분석, 스크립트와 정렬을 할 수 있는 편리함을 제공합니다.
_index는 가상 필드로 Lucene 인덱스에 추가되지 않습니다.index는term,terms 조회(match,query_string,simple_query_string도 포함)를 진행하지만prefix,wildcard,regexp,fuzzy 조회는 지원되지 않습니다.
_uid
_type 및_id의 조합
elasticsearch6 및 그 후에 사용합니다.지금,_type 형식이 삭제되었습니다. 문서는_id 고유 표지,_uid 필드는 보기로만 _id 필드는 뒤로 호환됩니다.
_type
문서의 일치 유형입니다.
elasticsearch6 및 그 후에 사용합니다.색인에 있는 모든 문서와 _type 및_id 유일한 연관성._type 필드 자체의 디자인 목표는 색인을 위한 빠른 검색입니다.검색, 집합, 정렬, 또는 스크립트에서 사용할 수 있습니다.
_id
문서의 id.
문서마다 고유한_id는 GET API를 호출하거나 id를 조회할 때 더 빠른 위치 문서를 인덱스하여 저장합니다.
elasticsearch6 이전에는 여러 종류의 존재를 지원하기 때문에 색인에서 유일하게 문서를 표시하는 데 _type 및_id, 또는_uid를 유일한 키로elasticsearch6 및 그 후_id는 인덱스의 유일한 키입니다.
Document source meta-fields(원문 문서 필드)
_source
문서의 원본 json 문자열 문서 내용입니다.
_소스 필드에는 색인 시간에 전달되는 원본 JSON 문서의 본문이 포함되어 있습니다._소스 필드 자체는 인덱스에 포함되지 않았지만, get이나 search 같은 요청을 실행할 때 되돌려줄 수 있도록 저장됩니다.기본_소스 필드가 열려 있습니다. 즉, 기본적으로 문서의 원시 값을 저장합니다.
비활성화_source
만약 어떤 필드의 내용이 매우 많거나 (예를 들어 소설) 검색 업무가 이 필드를 검색하고 문서 id로 돌아가서 다른 경로를 통해 문서 원문을 볼 필요가 없다면_소스 필드.비활성화 가능_ElasticSearch에 역렬 인덱스만 저장하고 필드의 원시 값을 보존하지 않습니다.PUT tweets
{
"mappings": {
"_doc": {
"_source": {
"enabled": false
}
}
}
}
포함 또는 제거_소스 필드의 필드
문서를 저장하기 전에 색인에 정의할 수 있습니다_source 저장된 정보 저장되지 않은 정보 정의 맵PUT logs
{
"mappings": {
"_doc": {
"_source": {
"includes": [
"*.count",
"meta.*"
],
"excludes": [
"meta.description",
"meta.other.*"
]
}
}
}
}
컨텐트 삽입PUT logs/_doc/1
{
"requests": {
"count": 10,
"foo": "bar"
},
"meta": {
"name": "Some metric",
"description": "Some metric description",
"other": {
"foo": "one",
"baz": "two"
}
}
}
GET logs/_search
{
"query": {
"match": {
"meta.other.foo": "one"
}
}
}
질의 결과는 다음과 같습니다.{
"took": 58,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 1,
"max_score": 0.2876821,
"hits": [
{
"_index": "logs",
"_type": "_doc",
"_id": "1",
"_score": 0.2876821,
"_source": {
"meta": {
"other": {},
"name": "Some metric"
},
"requests": {
"count": 10
}
}
}
]
}
}
_size
mapper-size 플러그인이 제공하는 계산 전체_소스 필드의 바이트 크기입니다.
Indexing meta-fields(인덱스 메타 필드)
_all
_all 필드는 다른 필드를 한데 묶는 슈퍼 필드입니다. 모든 필드는 공백으로 구분됩니다._all 필드는 해석되고 인덱스되지만 저장되지 않습니다.키워드가 포함된 문서로 돌아가고 싶지만 필드를 정확하게 찾을 수 없을 때 _all 필드.기본값은 닫힙니다.
elasticsearch6 및 그 후에 사용합니다.PUT /my_index
{
"mapping": {
"user": {
"_all": {
"enabled": true
}
}
}
}
PUT /my_index/user/1
{
"first_name": "John",
"last_name": "Smith",
"date_of_birth": "1970-10-24"
}
GET /my_index/_search
{
"query": {
"match": {
"_all": "john smith 1970"
}
}
}
위의 예에서_all은 이러한 색인 단어를 포함할 것입니다. [ "john", "smith", "1970", "10", "24" ]
, 색인 횟수의 조합 순서는 분사기에 의존합니다._all 이미 사용되지 않습니다.
_field_names
_field_names 필드는 인덱스 문서의 필드 값이null을 제외한 모든 필드의 이름을 포함합니다.일반적으로 이 필드를 사용하여 특정 필드에 대해 비어 있지 않거나 비어 있지 않은 문서를 찾습니다.
현재, 일반적으로_field_names 필드에는 doc_만 포함됩니다.values 및 기본적으로 속성을 닫는 필드 이름입니다.
비활성화_field_names
PUT tweets
{
"mappings": {
"_doc": {
"_field_names": {
"enabled": false
}
}
}
}
_ignored
elasticsearch 6.4 이후 메타필드 추가
_ignored 메타필드 인덱스와 저장 문서에서 ignore_malformed
속성으로 인해 ignored의 모든 필드의 이름입니다.
Routing meta-field(라우팅 메타 필드)
_routing
색인에 있는 문서는 다음 공식을 사용하여 특정 조각에 저장됩니다.shard_num = hash(_routing) % num_primary_shards
기본적으로 사용되는 문서_id 필드의 값이 루트됩니다.
사용자 정의 루트 모드는 각 문서의 사용자 정의 루트 값을 지정하여 실현할 수 있습니다.예:PUT my_index/_doc/1?routing=user1&refresh=true
{
"title": "This is a document"
}
GET my_index/_doc/1?routing=user1
검색 결과{
"_index": "my_index",
"_type": "_doc",
"_id": "1",
"_version": 1,
"_routing": "user1",
"found": true,
"_source": {
"title": "This is a document"
}
}
요청체 조회 방식은 다음과 같습니다.GET my_index/_search
{
"query": {
"terms": {
"_routing": [ "user1" ]
}
}
}
meta-field(사용자 정의 메타필드)
elasticsearch도 사용자 정의 메타데이터를 지원합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSON
JSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다.
그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다.
저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
_index
문서가 속한 색인.
다중 색인 조회 시 특정 색인 이름에서만 조회할 수 있는 경우도 있습니다._인덱스 필드는 인덱스 이름에 대해term 조회,terms 조회, 집합 분석, 스크립트와 정렬을 할 수 있는 편리함을 제공합니다.
_index는 가상 필드로 Lucene 인덱스에 추가되지 않습니다.index는term,terms 조회(match,query_string,simple_query_string도 포함)를 진행하지만prefix,wildcard,regexp,fuzzy 조회는 지원되지 않습니다.
_uid
_type 및_id의 조합
elasticsearch6 및 그 후에 사용합니다.지금,_type 형식이 삭제되었습니다. 문서는_id 고유 표지,_uid 필드는 보기로만 _id 필드는 뒤로 호환됩니다.
_type
문서의 일치 유형입니다.
elasticsearch6 및 그 후에 사용합니다.색인에 있는 모든 문서와 _type 및_id 유일한 연관성._type 필드 자체의 디자인 목표는 색인을 위한 빠른 검색입니다.검색, 집합, 정렬, 또는 스크립트에서 사용할 수 있습니다.
_id
문서의 id.
문서마다 고유한_id는 GET API를 호출하거나 id를 조회할 때 더 빠른 위치 문서를 인덱스하여 저장합니다.
elasticsearch6 이전에는 여러 종류의 존재를 지원하기 때문에 색인에서 유일하게 문서를 표시하는 데 _type 및_id, 또는_uid를 유일한 키로elasticsearch6 및 그 후_id는 인덱스의 유일한 키입니다.
Document source meta-fields(원문 문서 필드)
_source
문서의 원본 json 문자열 문서 내용입니다.
_소스 필드에는 색인 시간에 전달되는 원본 JSON 문서의 본문이 포함되어 있습니다._소스 필드 자체는 인덱스에 포함되지 않았지만, get이나 search 같은 요청을 실행할 때 되돌려줄 수 있도록 저장됩니다.기본_소스 필드가 열려 있습니다. 즉, 기본적으로 문서의 원시 값을 저장합니다.
비활성화_source
만약 어떤 필드의 내용이 매우 많거나 (예를 들어 소설) 검색 업무가 이 필드를 검색하고 문서 id로 돌아가서 다른 경로를 통해 문서 원문을 볼 필요가 없다면_소스 필드.비활성화 가능_ElasticSearch에 역렬 인덱스만 저장하고 필드의 원시 값을 보존하지 않습니다.PUT tweets
{
"mappings": {
"_doc": {
"_source": {
"enabled": false
}
}
}
}
포함 또는 제거_소스 필드의 필드
문서를 저장하기 전에 색인에 정의할 수 있습니다_source 저장된 정보 저장되지 않은 정보 정의 맵PUT logs
{
"mappings": {
"_doc": {
"_source": {
"includes": [
"*.count",
"meta.*"
],
"excludes": [
"meta.description",
"meta.other.*"
]
}
}
}
}
컨텐트 삽입PUT logs/_doc/1
{
"requests": {
"count": 10,
"foo": "bar"
},
"meta": {
"name": "Some metric",
"description": "Some metric description",
"other": {
"foo": "one",
"baz": "two"
}
}
}
GET logs/_search
{
"query": {
"match": {
"meta.other.foo": "one"
}
}
}
질의 결과는 다음과 같습니다.{
"took": 58,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 1,
"max_score": 0.2876821,
"hits": [
{
"_index": "logs",
"_type": "_doc",
"_id": "1",
"_score": 0.2876821,
"_source": {
"meta": {
"other": {},
"name": "Some metric"
},
"requests": {
"count": 10
}
}
}
]
}
}
_size
mapper-size 플러그인이 제공하는 계산 전체_소스 필드의 바이트 크기입니다.
Indexing meta-fields(인덱스 메타 필드)
_all
_all 필드는 다른 필드를 한데 묶는 슈퍼 필드입니다. 모든 필드는 공백으로 구분됩니다._all 필드는 해석되고 인덱스되지만 저장되지 않습니다.키워드가 포함된 문서로 돌아가고 싶지만 필드를 정확하게 찾을 수 없을 때 _all 필드.기본값은 닫힙니다.
elasticsearch6 및 그 후에 사용합니다.PUT /my_index
{
"mapping": {
"user": {
"_all": {
"enabled": true
}
}
}
}
PUT /my_index/user/1
{
"first_name": "John",
"last_name": "Smith",
"date_of_birth": "1970-10-24"
}
GET /my_index/_search
{
"query": {
"match": {
"_all": "john smith 1970"
}
}
}
위의 예에서_all은 이러한 색인 단어를 포함할 것입니다. [ "john", "smith", "1970", "10", "24" ]
, 색인 횟수의 조합 순서는 분사기에 의존합니다._all 이미 사용되지 않습니다.
_field_names
_field_names 필드는 인덱스 문서의 필드 값이null을 제외한 모든 필드의 이름을 포함합니다.일반적으로 이 필드를 사용하여 특정 필드에 대해 비어 있지 않거나 비어 있지 않은 문서를 찾습니다.
현재, 일반적으로_field_names 필드에는 doc_만 포함됩니다.values 및 기본적으로 속성을 닫는 필드 이름입니다.
비활성화_field_names
PUT tweets
{
"mappings": {
"_doc": {
"_field_names": {
"enabled": false
}
}
}
}
_ignored
elasticsearch 6.4 이후 메타필드 추가
_ignored 메타필드 인덱스와 저장 문서에서 ignore_malformed
속성으로 인해 ignored의 모든 필드의 이름입니다.
Routing meta-field(라우팅 메타 필드)
_routing
색인에 있는 문서는 다음 공식을 사용하여 특정 조각에 저장됩니다.shard_num = hash(_routing) % num_primary_shards
기본적으로 사용되는 문서_id 필드의 값이 루트됩니다.
사용자 정의 루트 모드는 각 문서의 사용자 정의 루트 값을 지정하여 실현할 수 있습니다.예:PUT my_index/_doc/1?routing=user1&refresh=true
{
"title": "This is a document"
}
GET my_index/_doc/1?routing=user1
검색 결과{
"_index": "my_index",
"_type": "_doc",
"_id": "1",
"_version": 1,
"_routing": "user1",
"found": true,
"_source": {
"title": "This is a document"
}
}
요청체 조회 방식은 다음과 같습니다.GET my_index/_search
{
"query": {
"terms": {
"_routing": [ "user1" ]
}
}
}
meta-field(사용자 정의 메타필드)
elasticsearch도 사용자 정의 메타데이터를 지원합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSON
JSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다.
그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다.
저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
PUT tweets
{
"mappings": {
"_doc": {
"_source": {
"enabled": false
}
}
}
}
PUT logs
{
"mappings": {
"_doc": {
"_source": {
"includes": [
"*.count",
"meta.*"
],
"excludes": [
"meta.description",
"meta.other.*"
]
}
}
}
}
PUT logs/_doc/1
{
"requests": {
"count": 10,
"foo": "bar"
},
"meta": {
"name": "Some metric",
"description": "Some metric description",
"other": {
"foo": "one",
"baz": "two"
}
}
}
GET logs/_search
{
"query": {
"match": {
"meta.other.foo": "one"
}
}
}
{
"took": 58,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 1,
"max_score": 0.2876821,
"hits": [
{
"_index": "logs",
"_type": "_doc",
"_id": "1",
"_score": 0.2876821,
"_source": {
"meta": {
"other": {},
"name": "Some metric"
},
"requests": {
"count": 10
}
}
}
]
}
}
_all
_all 필드는 다른 필드를 한데 묶는 슈퍼 필드입니다. 모든 필드는 공백으로 구분됩니다._all 필드는 해석되고 인덱스되지만 저장되지 않습니다.키워드가 포함된 문서로 돌아가고 싶지만 필드를 정확하게 찾을 수 없을 때 _all 필드.기본값은 닫힙니다.
elasticsearch6 및 그 후에 사용합니다.
PUT /my_index
{
"mapping": {
"user": {
"_all": {
"enabled": true
}
}
}
}
PUT /my_index/user/1
{
"first_name": "John",
"last_name": "Smith",
"date_of_birth": "1970-10-24"
}
GET /my_index/_search
{
"query": {
"match": {
"_all": "john smith 1970"
}
}
}
위의 예에서_all은 이러한 색인 단어를 포함할 것입니다.
[ "john", "smith", "1970", "10", "24" ]
, 색인 횟수의 조합 순서는 분사기에 의존합니다._all 이미 사용되지 않습니다._field_names
_field_names 필드는 인덱스 문서의 필드 값이null을 제외한 모든 필드의 이름을 포함합니다.일반적으로 이 필드를 사용하여 특정 필드에 대해 비어 있지 않거나 비어 있지 않은 문서를 찾습니다.
현재, 일반적으로_field_names 필드에는 doc_만 포함됩니다.values 및 기본적으로 속성을 닫는 필드 이름입니다.
비활성화_field_names
PUT tweets
{
"mappings": {
"_doc": {
"_field_names": {
"enabled": false
}
}
}
}
_ignored
elasticsearch 6.4 이후 메타필드 추가
_ignored 메타필드 인덱스와 저장 문서에서
ignore_malformed
속성으로 인해 ignored의 모든 필드의 이름입니다.Routing meta-field(라우팅 메타 필드)
_routing
색인에 있는 문서는 다음 공식을 사용하여 특정 조각에 저장됩니다.shard_num = hash(_routing) % num_primary_shards
기본적으로 사용되는 문서_id 필드의 값이 루트됩니다.
사용자 정의 루트 모드는 각 문서의 사용자 정의 루트 값을 지정하여 실현할 수 있습니다.예:PUT my_index/_doc/1?routing=user1&refresh=true
{
"title": "This is a document"
}
GET my_index/_doc/1?routing=user1
검색 결과{
"_index": "my_index",
"_type": "_doc",
"_id": "1",
"_version": 1,
"_routing": "user1",
"found": true,
"_source": {
"title": "This is a document"
}
}
요청체 조회 방식은 다음과 같습니다.GET my_index/_search
{
"query": {
"terms": {
"_routing": [ "user1" ]
}
}
}
meta-field(사용자 정의 메타필드)
elasticsearch도 사용자 정의 메타데이터를 지원합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSON
JSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다.
그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다.
저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
shard_num = hash(_routing) % num_primary_shards
PUT my_index/_doc/1?routing=user1&refresh=true
{
"title": "This is a document"
}
GET my_index/_doc/1?routing=user1
{
"_index": "my_index",
"_type": "_doc",
"_id": "1",
"_version": 1,
"_routing": "user1",
"found": true,
"_source": {
"title": "This is a document"
}
}
GET my_index/_search
{
"query": {
"terms": {
"_routing": [ "user1" ]
}
}
}
elasticsearch도 사용자 정의 메타데이터를 지원합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.