버전 : 6.4.3
/usr/share/elasticsearch
부캠 location
"lat": 37.497274, "lon": 127.027433
엘라스틱 애러
{
_id: {ObjectId},
title: {text}, // required
leader: {keyword}, // required
members: [
email: {keyword}
],
min_personnel: {integer}, // default: 2
max_personnel: {integer},
,
startTime: {integer}, // 20
during: {integer}, // 1 -> 20시부터 1시간 진행한다.
day: {keyword[]}, // ["mon", "wed"]
period: :{date_range}
status: {boolean}, // 모집중, 마감
category: {keyword}
description: {text}, // required
thumbnail: {keyword}, // link, optional
location: {geo_point} or {text}, // 공식 주소 (ex. 서울시 서초구 양재1동)
tags: {text []} // optional
}
PUT studygroup
{
"settings": {
"number_of_shards": 5,
"number_of_replicas": 1,
"index":{
"analysis":{
"tokenizer":{
"nori_user_dict_tokenizer":{
"type":"nori_tokenizer",
"decompound_mode": "mixed",
"user_dictionary": "userdict_ko.txt"
}
},
"analyzer": {
"nori_token_analyzer" :{
"type": "custom",
"tokenizer": "nori_user_dict_tokenizer"
}
}
}
}
},
"mappings": {
"_doc": {
"properties":{
"title":{
"type":"text"
},
"subtitle":{
"type":"text"
},
"leader":{
"type":"keyword"
},
"members":{
"properties":{
"email":{
"type":"keyword"
}
}
},
"min_personnel":{
"type":"integer"
},
"now_personnel":{
"type":"integer"
},
"max_personnel":{
"type":"integer"
},
"startTime" :{
"type":"integer"
},
"during" :{
"type":"integer"
},
"days" :{
"type":"integer"
},
"isRecruiting":{
"type":"boolean"
},
"category":{
"type":"keyword"
},
"intro":{
"type":"text"
},
"thumbnail":{
"type":"keyword"
},
"location":{
"type":"geo_point"
},
"tags" :{
"type": "keyword"
}
}
}
}
}PUT suggestedquery
{
"settings": {
"number_of_shards": 5,
"number_of_replicas": 1,
"index":{
"analysis":{
"tokenizer":{
"nori_user_dict_tokenizer":{
"type":"nori_tokenizer",
"decompound_mode": "mixed",
"user_dictionary": "userdict_ko.txt"
}
},
"analyzer": {
"nori_token_analyzer" :{
"type": "custom",
"tokenizer": "nori_user_dict_tokenizer"
}
}
}
}
},
"mappings": {
"_doc": {
"properties":{
"value":{PUT suggestedquery
{
"settings": {
"number_of_shards": 5,
"number_of_replicas": 1,
"index":{
"analysis":{
"tokenizer":{
"nori_user_dict_tokenizer":{
"type":"nori_tokenizer",
"decompound_mode": "mixed",
"user_dictionary": "userdict_ko.txt"
}
},
"analyzer": {
"nori_token_analyzer" :{
"type": "custom",
"tokenizer": "nori_user_dict_tokenizer"
}
}
}
}
},
"mappings": {
"_doc": {
"properties":{
"value":{
"type":"double"
},
"count":{
"type":"integer"
},
"query":{
"type":"text"
}
}
}
}
}
"type":"double"
},
"count":{
"type":"integer"
},
"query":{
"type":"text"
}
}
}
}
}
POST _bulk
{"index":{"_index":"studygroup", "_type" : "_doc", "_id" : "1"}}
{"title" : "오늘도 코딩 스터디", "subtitle":"언젠간 자바 파이썬을 마스터 할 날이 오겠죠", "leader" : "리더일", "members" : [{"email" : "[email protected]"}, {"email" : "[email protected]"}], "min_personnel" : 2, "now_personnel":2, "max_personnel" : 6,"startTime":13, "during": 2, "days":[0, 3], "isRecruiting" : true, "intro" : "일주일에 3번 만나 모각코 합니다", "thumbnail" : "<http://images.christiantoday.co.kr/data/images/full/323947/2.jpg?w=654>", "location" : {"lat": 37.497274, "lon": 127.027433},"category":["프로그래밍","Java"], "tags" : ["자바", "파이썬"]}
{"index":{"_index":"studygroup", "_type" : "_doc", "_id" : "2"}}
{"title" : "내일도 코딩 스터디", "subtitle": "언젠간 자바스크림트를 마스터 할 날이 오겠죠", "leader" : "리더이", "members" : [{"email": "[email protected]"}, {"email" : "[email protected]"}], "min_personnel" : 2, "now_personnel":5, "max_personnel" : 7, "startTime":13, "during": 2, "days":[1, 3], "isRecruiting" : true, "intro" : "대충 만나서 잡담 하면서 코딩", "thumbnail" : "<http://images.christiantoday.co.kr/data/images/full/323947/2.jpg?w=654>", "location" : {"lat": 37.497274, "lon": 127.027433},"category":["프로그래밍","C++"], "tags" : [ "C++", "javascript"]}
{"index":{"_index":"studygroup", "_type" : "_doc", "_id" : "3"}}
{"title" : "어제도 코딩 스터디", "subtitle":"언젠간GO를 마스터 할 날이 오겠죠", "leader" : "리더삼", "members" : [{"email" : "[email protected]"}, {"email" : "[email protected]"}], "min_personnel" : 4,"now_personnel": 7, "max_personnel" : 9, "startTime":13, "during": 2, "days":[4, 5], "isRecruiting" : true, "intro" : "매일매일 만나고 싶지만 일주일에 한 번", "thumbnail" : "<http://images.christiantoday.co.kr/data/images/full/323947/2.jpg?w=654>", "location" : {"lat": 37.497274, "lon": 127.027433},"category":["프로그래밍","JavaScript"], "tags" : ["GO"]}
POST studygroup/_search
{
"query": {
"bool":{
"must_not":{
"term":{
"isRecruit": false
}
},
"should": [
{
"prefix": {
"tags": {
"value": "G"
}
}
},
{
"prefix": {
"tags": {
"value": "C"
}
}
}
]
}
}
}
POST studygroup/_search
{
"query": {
"bool": {
"must":[
{
"query_string" :{
"query" : "*오늘도*",
"fields": ["title", "description"]
}
},
{
"term":{
"isRecruit": false
}
}
]
}
}
}
POST studygroup/_search
{
"query": {
"bool": {
"must":[
{
"query_string" :{
"query" : "*코딩*",
"fields": ["title", "description"]
}
}
],
"must_not": [
{
"term":{
"isRecruit": false
}
}
],
"filter": {
"term":{
"category": "C++"
}
}
}
}
GET /studygroup/_search
{
"query": {
"bool" : {
"must" : {
"match_all" : {}
},
"filter" : {
"geo_distance" : {
"distance" : "200km",
"location" : {
"lat" : 40,
"lon" : -50
}
}
}
}
}
}