엘라스틱서치 기본사용
MUST / like / 완전일치 / 50이상 / 정렬
{
"query": {
"bool": {
"must": [
{
"wildcard": {
"field1": "*like 검색어*"
}
},
{
"wildcard": {
"field2": "*like 검색어*"
}
},
{
"term": {
"exact_field": "완전히 일치하는 값"
}
},
{
"range": {
"numeric_field": {
"gte": 50
}
}
}
]
}
},
"sort": [
{
"created_date": {
"order": "asc"
}
}
]
}
Should 하나라도 충족되면
{
"query": {
"bool": {
"should": [
{
"wildcard": {
"field1": "*검색어*"
}
},
{
"wildcard": {
"field2": "*검색어*"
}
},
{
"wildcard": {
"field3": "*검색어*"
}
}
]
}
}
}
인덱스 생성 및 삭제
PUT메서드 / DELETE메서드 http://localhost:9200/dbname
{
"mappings": {
"table": {
"discover":".*"}
}
}
기본검색
POST메서드로 검색 http://localhost:9200/dbname/tablename/_search
{
"query" : {
"query_string" : {
"query" : "*hey*"
}
}
}
Aggregation
집계의 가장 기본형.
여기서 group_by_category라는 것은 내가 정하는 임의 문자이다.
지정하고 싶은데로 지정하면 된다.
GET /my-index/_search
{
"size": 0,
"aggs": {
"group_by_category": {
"terms": {
"field": "category"
}
}
}
}
결과는 다음과 같이 반환된다. 버킷 안에 key가 두가지가 있고 각 Key들의 카운트 값이 반환된다.
{
"took": 1,
"timed_out": false,
"hits": {
"total": {
"value": 4,
"relation": "eq"
},
"hits": []
},
"aggregations": {
"group_by_category": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 1,
"buckets": [
{
"key": "Tutorials",
"doc_count": 3
},
{
"key": "Analysis",
"doc_count": 1
}
]
}
}
}