Elasticsearch 정리된 맵핑의 매개 변수

10961 단어 elasticsearch
카탈로그
1. Mapping 매개 변수
1. analyzer
2. normalizer
3. boost
4. coerce
5. copy_to
6. doc_values
7. dynamic
8. enable
9. fielddata
10. format
11. ignore_above
12. ignore_malformed
13. index
14. index_options
15. fields
16. norms
17. null_value
18. position_increment_gap
19. search_analyzer
20. similarity
21. store
22. term_vector

1. Mapping 매개 변수


1. analyzer


분사기는query에서 정의,field에서 정의,index에서 정의할 수 있습니다
PUT /my_index
{
  "mappings": {
    "_doc": {
      "properties": {
        "text": { 
          "type": "text",
          "fields": {
            "english": { 
              "type":     "text",
              "analyzer": "english"
            }
          }
        }
      }
    }
  }
}

GET my_index/_analyze 
{
  "field": "text", // stardard 
  "text": "The quick Brown Foxes."  // return [ the, quick, brown, foxes ].
}

GET my_index/_analyze 
{
  "field": "text.english", // english 
  "text": "The quick Brown Foxes."  //[ quick, brown, fox ]
}

2. normalizer


모든 문자를 소문자로 바꾸는 등 해석 전의 표준화 설정에 사용됩니다.
PUT index
{
  "settings": {
    "analysis": {
      "normalizer": {
        "my_normalizer": {
          "type": "custom",
          "char_filter": [],
          "filter": ["lowercase", "asciifolding"]
        }
      }
    }
  },
  "mappings": {
    "_doc": {
      "properties": {
        "foo": {
          "type": "keyword",
          "normalizer": "my_normalizer"
        }
      }
    }
  }
}

PUT index/_doc/1
{
  "foo": "BÀR"
}

PUT index/_doc/2
{
  "foo": "bar"
}

PUT index/_doc/3
{
  "foo": "baz"
}

POST index/_refresh

GET index/_search
{
  "query": {
    "term": {
      "foo": "BAR"
    }
  }
}

// BAR normalizer bar, 1 2 
GET index/_search
{
  "query": {
    "match": {
      "foo": "BAR"
    }
  }
}

3. boost


필드의 가중치를 설정합니다. 기본값은 1입니다.
PUT my_index
{
  "mappings": {
    "_doc": {
      "properties": {
        "title": {
          "type": "text",
          "boost": 2 
        },
        "content": {
          "type": "text"
        }
      }
    }
  }
}

4. coerce


coerce 속성은 더러운 데이터를 제거하는 데 사용되며, 기본값은true입니다.예를 들어 정형 숫자 5는 문자열'5'또는 부동 소수점 5.0으로 쓰일 수 있다.coerce 속성을 열면 세척:
문자열이 정수로 변환됩니다.
부동 소수점이 정수로 변환됨

5. copy_to


여러 필드를 하나의 필드로 결합할 수 있습니다.예를 들면,first_name 및 last_name 은 full_ 로 병합 가능name 필드
PUT my_index
{
  "mappings": {
    "_doc": {
      "properties": {
        "first_name": {
          "type": "text",
          "copy_to": "full_name" 
        },
        "last_name": {
          "type": "text",
          "copy_to": "full_name" 
        },
        "full_name": {
          "type": "text"
        }
      }
    }
  }
}

PUT my_index/_doc/1
{
  "first_name": "John",
  "last_name": "Smith"
}

GET my_index/_search
{
  "query": {
    "match": {
      "full_name": { 
        "query": "John Smith",
        "operator": "and"
      }
    }
  }
}

6. doc_values


필드를 정렬하거나 집합하지 않거나 스크립트에서 필드 값에 접근할 필요가 없으면false로 설정하여 디스크 공간을 절약할 수 있습니다

7. dynamic


자동으로 새 필드를 추가할까요?기본값은true입니다.값이false일 때 새 필드를 무시합니다.값이 strict일 때 이상이 발생합니다.
PUT my_index
{
  "mappings": {
    "_doc": {
      "dynamic": false, 
      "properties": {
        "user": { 
          "properties": {
            "name": {
              "type": "text"
            },
            "social_networks": { 
              "dynamic": true,
              "properties": {}
            }
          }
        }
      }
    }
  }
}

8. enable


일부 필드는 저장하고 싶지만 색인을 원하지 않습니다. 이 필드를false로 설정할 수 있습니다.false로 설정된 필드는 _소스에서 가져오지만 찾을 수 없습니다.

9. fielddata


https://www.elastic.co/guide/en/elasticsearch/reference/6.3/fielddata.html

10. format


format은 주로 날짜를 포맷하는 데 사용되며, 구체적인 형식은https://www.elastic.co/guide/en/elasticsearch/reference/6.3/mapping-date-format.html

11. ignore_above


이 필드는 필드의 최대 길이를 가리키는 데 사용되며, 이 길이를 초과하면 index나store에 의해

12. ignore_malformed


이 필드는 불규칙 데이터를 무시할 수 있습니다. 기본값은false입니다.
PUT my_index
{
  "mappings": {
    "my_type": {
      "properties": {
        "number_one": {
          "type": "integer",
          "ignore_malformed": true
        },
        "number_two": {
          "type": "integer"
        }
      }
    }
  }
}

//  , ignore_malformed 
PUT my_index/my_type/1
{
  "text":       "Some text value",
  "number_one": "foo" 
}

//  , 
PUT my_index/my_type/2
{
  "text":       "Some text value",
  "number_two": "foo" 
}

13. index


이 속성은 필드가 인덱스되었는지 여부를 지정합니다. 기본값은true

14. index_options


 index_옵션은 어떤 정보가 역렬 인덱스에 추가되었는지 가리킨다
docs
문서 번호만 가입
freqs
문서 번호와 단어의 빈도가 추가됨
positions
문서 번호, 단어의 빈도, 단어의 위치가 추가됨
offsets
문서 번호, 단어의 빈도, 단어의 위치, 단어 항목의 시작과 끝 문자 위치가 추가됨

15. fields


fields는 같은 필드에 여러 가지 다른 색인 방식을 사용할 수 있습니다. 예를 들어 String 형식의 필드는 text를 사용하여 전체 텍스트 검색을 할 수 있고 keyword를 사용하여 집합과 정렬을 할 수 있습니다.
PUT my_index
{
  "mappings": {
    "_doc": {
      "properties": {
        "city": {
          "type": "text",
          "fields": {
            "raw": { 
              "type":  "keyword"
            }
          }
        }
      }
    }
  }
}

PUT my_index/_doc/1
{
  "city": "New York"
}

PUT my_index/_doc/2
{
  "city": "York"
}

GET my_index/_search
{
  "query": {
    "match": {
      "city": "york" 
    }
  },
  "sort": {
    "city.raw": "asc" 
  },
  "aggs": {
    "Cities": {
      "terms": {
        "field": "city.raw" 
      }
    }
  }
}

 

16. norms


평점은 유용하지만 디스크 공간이 많이 소모되므로 기본적으로 켜지지 않습니다.

17. null_value


기본적으로null인 필드는 index와search에 의해 설정되지 않습니다. 이 인자는null인 필드를 index와search로 변경할 수 있습니다
PUT my_index
{
  "mappings": {
    "_doc": {
      "properties": {
        "status_code": {
          "type":       "keyword",
          "null_value": "NULL" 
        }
      }
    }
  }
}

//  null, 
PUT my_index/_doc/1
{
  "status_code": null
}
//  , null, 
PUT my_index/_doc/2
{
  "status_code": [] 
}

GET my_index/_search
{
  "query": {
    "term": {
      "status_code": "NULL" 
    }
  }
}

18. position_increment_gap


https://www.elastic.co/guide/en/elasticsearch/reference/6.3/position-increment-gap.html

19. search_analyzer


일반적으로 색인과 검색을 할 때 같은 분석기를 사용해서 검색의 용어가 역방향 색인에 속하는 것과 같은 형식을 가지도록 해야 한다.그러나 때때로 다른 분석기를 사용해야 한다. 예를 들어 사용하고 있다edge_ngram 자동 완성 시입니다.
기본적으로 쿼리는 analyzer 필드에서 만든 분석기를 사용하지만search_analyzer 덮어쓰기
PUT my_index
{
  "settings": {
    "analysis": {
      "filter": {
        "autocomplete_filter": {
          "type": "edge_ngram",
          "min_gram": 1,
          "max_gram": 20
        }
      },
      "analyzer": {
        "autocomplete": { 
          "type": "custom",
          "tokenizer": "standard",
          "filter": [
            "lowercase",
            "autocomplete_filter"
          ]
        }
      }
    }
  },
  "mappings": {
    "my_type": {
      "properties": {
        "text": {
          "type": "text",
          "analyzer": "autocomplete", 
          "search_analyzer": "standard" 
        }
      }
    }
  }
}

PUT my_index/my_type/1
{
  "text": "Quick Brown Fox" 
}

GET my_index/_search
{
  "query": {
    "match": {
      "text": {
        "query": "Quick Br", 
        "operator": "and"
      }
    }
  }
}

20. similarity


문서의 채점 모델을 지정합니다. 매개변수는 "BM25"(기본값), "classic"(TF/IDF), "boolean"(부울 채점 모델)

21. store


기본적으로fieldvalues는 인덱스와 검색이 가능하지만 저장되지 않습니다.이것은 이field는 조회할 수 있지만, 원시적인fieldvalue는 얻을 수 없다는 것을 의미한다.
하지만 이건 괜찮아요. 왜냐하면_소스 필드에 문서가 기본적으로 저장되어 있으므로 설정에서_소스 필드에서 찾으십시오.
어떤 경우에store 매개 변수도 의미가 있습니다. 예를 들어 문서에 title,date와 매우 큰 콘텐츠 필드가 있습니다. 우리는 title와date만 가져오고 싶을 수도 있습니다. 이런 경우 이렇게 설정할 수 있습니다.
PUT my_index
{
  "mappings": {
    "_doc": {
      "properties": {
        "title": {
          "type": "text",
          "store": true 
        },
        "date": {
          "type": "date",
          "store": true 
        },
        "content": {
          "type": "text"
        }
      }
    }
  }
}

PUT my_index/_doc/1
{
  "title":   "Some short title",
  "date":    "2015-01-01",
  "content": "A very long content field..."
}

GET my_index/_search
{
  "stored_fields": [ "title", "date" ] 
}

22. term_vector


https://www.elastic.co/guide/en/elasticsearch/reference/6.3/term-vector.html

좋은 웹페이지 즐겨찾기