버전 : 6.4.3

/usr/share/elasticsearch

부캠 location

"lat": 37.497274, "lon": 127.027433

엘라스틱 애러

https://wedul.site/620

StudyGroups

{
	_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
                    }
                }
            }
        }
    }
}