es에서 검색어를 한글로 했을때 match를 사용해도 완전히 일치하는 데이터만 가져오는 문제가 발생

캡처.PNG

분명히 "다비", "다비우" "다비우자", "다비우자다", "다비우자다비"와 같은 title이 있음에도
불구하고, 다른 데이터는 찾지 못하는 현상이 발생 

match를 제대로 이해하지 못하고 사용한건가 싶어 영어로 해봄

fawwaawf.PNG

"swagger"라고 검색한 결과, swagger를 포함하고 있는 데이터들이 나오는 모습을 볼 수 있음.

구글링을 해본 결과

gggggggg.PNG

nori 분석기 사용 결과 : 어근과 어미를 분석하여 토큰화를 진행함
  async searchHumorBoard(q: string) {
    const data = await this.esService.search({
      index: 'humor_board', // 검색할 인덱스 지정
      body: {
        query: {
          match: {
            title: q,
          },
        },
      },
    });
    console.log(data);

    // 검색 결과에서 문서들의 배열을 추출
    const hits = data.body.hits.hits;

    // 각 검색 결과 문서(_source)를 결과 배열에 저장
    let result = hits.map((hit) => hit._source);

    return result; // 검색 결과 반환
  }

ver.1은 가능한 간단하게 짰으나, 검색어를 기반으로 원하는 데이터를 정상적으로 가져오는 모습을 보여줌.