[javascript] Fuse.js를 이용한 검색 기록 추천 방법

이번 글에서는 Fuse.js를 사용하여 사용자의 검색 기록을 추천하는 방법에 대해 알아보겠습니다.

1. Fuse.js란?

Fuse.js는 JavaScript에서 사용할 수 있는 가볍고 빠른 모든 텍스트 검색 라이브러리입니다. 이 라이브러리는 가볍고 강력한 검색 알고리즘을 제공하며 사용자가 키워드를 입력했을 때 가장 일치하는 결과를 찾아줍니다.

2. 검색 기록 추천 기능 구현하기

Fuse.js를 사용하여 검색 기록 추천 기능을 구현하는 방법을 살펴보겠습니다.

2.1. 검색 기록 데이터 구성하기

먼저, 사용자의 검색 기록 데이터를 구성해야 합니다. 예를 들어, 사용자별로 검색 기록이 담긴 배열을 가지고 있다고 가정해봅시다.

const searchHistory = [
  { query: '사과', timestamp: 1627017252000 },
  { query: '바나나', timestamp: 1627017301000 },
  { query: '딸기', timestamp: 1627017353000 },
  // ... 추가적인 검색 기록들
];

각 검색 기록은 검색어(query)와 타임스탬프(timestamp)로 구성되어 있습니다. 이러한 데이터를 가지고 Fuse.js를 초기화할 준비가 되었습니다.

2.2. Fuse.js 초기화하기

Fuse.js를 초기화하려면 Fuse 생성자에 검색 기록 데이터와 옵션을 전달해야 합니다. 아래는 Fuse.js를 초기화하는 예제입니다.

const options = {
  keys: ['query'],
};

const fuse = new Fuse(searchHistory, options);

위 코드에서는 검색 기록의 query 속성을 검색 키로 사용하도록 설정하였습니다. keys 옵션을 통해 검색에 사용할 속성을 지정할 수 있습니다.

2.3. 검색 기록 추천 받기

Fuse.js를 초기화한 뒤에는 사용자가 검색어를 입력했을 때 가장 일치하는 검색 기록을 추천 받을 수 있습니다. 아래는 검색어에 따라 추천되는 검색 기록을 조회하는 예제입니다.

const userInput = '사과';

const searchResults = fuse.search(userInput);
const recommendations = searchResults.map(result => result.item.query);

console.log(recommendations);

위 코드에서는 사용자가 ‘사과’라는 검색어를 입력했을 때 추천되는 검색 기록들을 조회하고, 추천 기록들을 배열로 만들어서 출력합니다.

3. 결론

Fuse.js는 검색 기록 추천 기능을 구현하는 데 유용한 도구입니다. Fuse.js를 사용하면 가볍고 빠른 검색 알고리즘을 쉽게 구현할 수 있습니다. 이를 통해 사용자에게 더 나은 검색 경험을 제공할 수 있습니다.

더 자세한 내용은 Fuse.js 공식 문서를 참고하시기 바랍니다.

참고 자료: