psj2867
elastic search 정리 본문
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 |