
21. Elasticsearch 검색원리
2022. 8. 16. 18:58
오늘의 공부 정리
Elasticsearch의 검색원리 elasticsearch는 문장을 tokenizing 해서 저장한다. 즉, "안녕하세요. Bestshop입니다! Best" 라는 문장을 tokenizing해서 저장하면 1 - 안녕하세요 2 - Bestshop입니다! 3 - Best 와 같이 세개의 문서로 나뉘어져서 저장이된다. 이렇게 되면 문제가 무엇일까? Best라는 단어를 검색하면 검색이되지만 Bestshop까지만 검색해보면 정보가 찾아지지 않는것을 확인해 볼 수 있다. 이는 주소에서 인덱스뒤에 /_analyze 를 추가로 작성해서 찾아볼 수 있고 이를통해 tokenizing의 특징을 세가지 확인해 볼 수 있었다. 특수문자 제거 - Character-Filter 띄어쓰기 기준으로 잘림 - Tokenizer 대문자 ..

18. 검색엔진 with elasticsearch
2022. 8. 16. 14:16
오늘의 공부 정리
간단한 단어나 정보를 통해서 DB 검색을 할 때는 Redis를 이용해서 데이터를 찾아올 수 있었는데 '철수가 바나나를 먹는다' 와 같이 문장검색을 할 때에는 Elasticsearch 라는것을 이용한다. 그렇다면 이 Elasticsearch를 이용하기 위해 알아야 할 것은 무엇이고 또 어떤 원리로 어떻게 사용되는 것인지 하나하나 살펴보자! SQL DB mysql에서 DB에 저장된 데이터 중에서 '점심'이라는 단어가 들어가 있는 문장들을 여럿 찾을 때는 어떻게 해야할까? where = '점심' 이라고 하고 찾는다면 정말 '점심'이라고 적혀있는 데이터만 찾는다. 이럴 때에는 where = '%점심%' 이렇게 작성하면 '점심'이라는 단어가 포함된 모든 데이터정보를 불러와준다. 하지만 이는 모든 데이터를 돌면서 ..