Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Archives
Today
Total
관리 메뉴

psj2867

elastic search 정리 본문

기타

elastic search 정리

psj2867 2023. 1. 27. 14:31


cluster - cluster.name, node.name, discovery.seed_hosts
node - node.master, node.data, node.ingest


node <- shard <- index <- document
shard - primary shard, replica


charater filter -> analyzer(tokenizer, filter)

charater filter - HTML Strip, Mapping, Pattern Replace
tokenizer - Standard, Letter, Whitespace, UAX URL Email, Pattern, Path Hierarachy
token filter - Lowercase, Uppercase, stop, synonym, Ngram, Edge Ngram, Shingle, Unique

mapping type - text, keyword, long, boolean, date, object, nested
-------------

GET ${index}/_doc/${id}
GET ${index}/_search

DELETE ${index}/_doc/${id}

PUT ${index}/_doc/${id} : {data}

POST ${index}/_doc : {data}
POST ${index}/_doc/${id} : {data}
POST ${index}/_update/${id} : {"doc":data}

--------------

GET ${index}/_search?q=${value} [[AND|OR|NOT] ${value}]
GET ${index}/_search?q="${field}": "${value}"
${index} <- index | index* | _all
GET ${index}/_search
{
  "query":{
    "match_all": {} | #default
    "match":{
      "${field}": "${value} [${value2}]",
      "${field}": {
        "query": "${value} [${value2}]",
        "operator": "and" #default "or"
      }
    } |
    "match_phrase": {
      "${field}": "${value}",
      "${field}": {
        "query": "${value}",
        "slop": $N
      }
    } |
    "query_string": {
      "query": "${value} [[AND|OR|NOT] [${value}|\"${phrase}\"]] " ,
      [ "default_field": "${field}", ]
    } |
    "range": { #score=1.0
      "${field}": {
        "gte"|"gt"|"lte"|"lt" : ${value}
        [,"gte"|"gt"|"lte"|"lt" : ${value}]
        [,"format": "dd/MM/yyyy||yyyy||now/y/M/d/h/m/s/w"]
        #sample - "lt": "now-365d"
      }
    } |
    "regexp": { "${field}": "${value}" } |
    "term": { "${field}": "${value}" } |
    "bool": {
      "must"|"must_not"|"should" : [
        ${query},
        # sampe - { "match" : { "${field}": "${value}" } }
      ] |
      "filter" : [
        ${query} | # sampe - { "match" : { "${field}[.keyword]": "${value}" } }
        "bool" : { "must"|"must_not"|"should" : [ ${query} ]}
      ]
    }
  },
  "aggs": {
    "${aggs1}": {
       "min"|"max"|"sum"|"avg": {"field": "${field}"} |
       "Range"|"Histogram"|"Terms": {
          "field": "${field}"
        }
        [, "aggs": ${aggs_query} ]
    }
  }
}

GET _analyze
GET [${index}/]_analyze
{
  "text": "${value}",
  "tokenizer": "",
  "filter": [],
  "analyzer": ""
}
GET ${index}/_termvectors/${id}?fields=${field}[,${field}]

POST $bulk
POST [${index}]/_bulk
{"[index|create|delete|update]":{"_index":"${index}", "_id":"${id}"}}
{"$field":"$value"}

GET ${index}
GET ${index}/[_settings|_mappings]
PUT ${index} # not exist index
{
  "mappings": {
    "properties": {
      "${field}": {
        "type": "text",
        "analyzer": "${analyzer}"
      }
    }
  },
  "settings": {
    "index": {
      "number_of_shards": $N,
      "number_of_replicas": $N,
      "analysis": {
        "analyzer": {
          "${my_custom_analyzer}": {
            "type": "custom",
            "char_filter": [
              "cpp_char_filter"
            ],
            "tokenizer": "whitespace",
            "filter": [
              "lowercase",
              "stop",
              "snowball",
              "my_stop_filter"
            ]
          }
        },

        "filter": {
          "my_stop_filter": {
            "type": "stop",
            "stopwords": [
              "brown"
            ]
          }
        },

        "char_filter": {
          "cpp_char_filter": {
            "type": "mapping",
            "mappings": [ "+ => _plus_", "- => _minus_" ]
          }
        }
      }
    }
  }
}


'기타' 카테고리의 다른 글

PLT와 GOT의 간단한 동작 구조  (0) 2023.03.28
hadoop mapreduce 정리  (0) 2023.02.16
bash shell script 정리  (0) 2023.01.20
c언어의 main 은 함수여야 할까  (0) 2022.11.24
nginx - auth_basic 간단한 구조 설명  (0) 2022.10.18
Comments