09. 엘라스틱 서치 조회하기
위키피디아에서 제목 파일을 제공해준다길래
gz파일을 다운받았다
https://dumps.wikimedia.org/kowiki/latest/
kowiki-20220420-all-titles.gz
파이썬으로 불러오니까 다 깨진다
a.decode("utf-8")
'828\t첫_걸음\n'
대충 콘솔로 찍어보니 이런식으로 나온다
b'828\t\xec\xb2\xab_\xea\xb1\xb8\xec\x9d\x8c\n', b'829\tAuthority_control\n', b'829\tBananas/\xec\x8b\x9c\xed\x97\x98\xec\x9e\xa5\n', b'829\tBananasArgs/\xec\x8b\x9c\xed\x97\x98\xec\x9e\xa5\n',
이렇게 다 깨져서 나오지만 이런건 디코딩하면 되긴하는데
문제는 저 문자들을 가지고 어떻게 활용할까이다
must와 should쿼리를 위키피디아에서 받은 제목으로 계속 쿼리를 날리면 ,,?
쿼리의 결과(카운팅수)를 디비에 저장을 시키면.,.?
우선 위키피디아는 파일을 받아놨으니까 제목들을 모두 저장을 시켜놓고
해당 제목이 얼만큼 언급이 됐는지 카운팅된 숫자를 넣을까.,,,?
그러면 가장 많이 언급한 term도 알 수 있지 않을까?
일단 망상을 해봤으니 실행에 옮겨본다

엄청난 속도로 print를 찍어내고 있는걸 잠시 중단해봤다
단어들을 보니 진짜 온 세상에 있는 모든 단어들을 다 가져온 느낌이다
이걸 db에 넣어도될까 1억row가 나올까봐 무섭다
이게 과연 효율적인 걸까? 이거는 수요일에 스터디가서 이렇게 해도될지 물어보고 진행해야 할 것같다.,..
여행지(국내 지역 → 도 또는 시 별로 선호하는 여행지, 언급하는 도시는?)
오늘 공부를 여기서 마무리 짓기 아쉬우니 저거라도 쿼릴르 써봐야겠다
GET mbti_stomi_term2/_search
{
"query": {
"bool": {
"must": [
{"match": {"contents": "여행"} },
{"match": {"contents": "제주도"}}
]
}
},
"aggs": {
"group_by_state": {
"terms": {
"field": "keyword.keyword"
}
}
}
}

INFP가 15번, ESTJ가 2번 언급했다
사실인지 sql로 확인해보겠다
select keyword , count(*)
from t_naver_blog tnb
where contents like '%제주도%'
and contents like '%여행%'
group by keyword
ESFJ 1190
ESTJ 381
ESTP 765
INFP 39
매우 당황스럽다..
GET mbti_stomi_term2/_search
{
"query": {
"match": {
"writer": "갱미니"
}
}
}
갱미니라는 작성자가 제주도 여행글을 쓴게 DB에는 있는데 es index안에는 안들어가 있었다