1001
10월도 화이팅~
다음과 같은 구조
E L K 각각 다른 포트번호를 사용한다.
POST / PUT / GET / DELETE 후 인덱스 명
GET _cat/indices?v&pretty
저장된 모든 index들 다 나옴 이쁘게
논리쿼리는 Query 에 다양한 조건을 추가하는 방법
=> customer_first_name 에 mary 가 들어가는 데이터 불러옴
=> Monday 와 mary 두가지 조건을 추가하면 모두 만족하는 값을 찾음
=> AND 연산자!
=> 말그대로 must의 반대. mary 가 들어있는 요소를 제외시킴
=> must와 must_not을 같이 쓸 수도 있다!
=> should 는 OR 연산자다! mary 이거나 Monday 인 데이터 불러옴.
=> 값이 하나일때는 must와 같은 데이터를 가져온다.
=> must와 should 같이 쓰면 should 는 score(유사도) 에만 영향줌
=> filter는 yes or no. 유사도 기반이 아니라서 score를 반환하지 않음. 하지만 그만큼 빠르다!
=> filter 먼저하고 must 하면 filter로 유사도 검사를 하지않고 빠르게 검색 후 그 중 must 로 score 값을 냄
=> wildcard 를 사용하고
mar* 를 하면 mar 으로 시작하는 단어들을 검색
mar? 를 하면 mar로 시작하는 단어 하나만 가져옴
=> highlight 이용 시 가져온 데이터에 색을 줄 수 있다!
modules 폴더에 기본 환경 세팅 후
router 를 연결하고 controller 작성
react로 프론트를 만들고 그곳에서 query 값을 q로 받아온다.
search 로 post_index라는 인덱스에서 title 을 highlight하여 result 값으로 받는다.
토크나이저는 ngram을 이용해서 데이터를 잘게 쪼개서 받을 수 있다.
searchResult라는 변수에 받아온 result값의 hits값을 넣어주고
findResult에 받아온 hits 값을 map함수를 이용해서 item을 뽑아서 title과 유사도 score을 return 해준다!