>  기사  >  웹 프론트엔드  >  nodejs에서 검색 기능을 구현하는 방법

nodejs에서 검색 기능을 구현하는 방법

PHPz
PHPz원래의
2023-04-17 16:41:141304검색

우리 모두 알고 있듯이 현대 네트워크 기술은 극도로 발전한 수준에 도달했으며 네트워크에는 많은 양의 정보가 존재하며 사람들의 사용과 함께 매일 증가하고 있습니다. 따라서 검색 엔진은 우리가 일상적으로 사용하는 데 필수적인 도구가 되었습니다. 백엔드 개발 분야에서 Node.js는 가장 인기 있고 널리 사용되는 기술 중 하나입니다. 많은 수의 동시 요청을 쉽게 처리할 수 있기 때문입니다. 이 기사에서는 Node.js를 사용하여 강력하고 확장 가능한 검색 엔진을 구축하는 방법에 대해 설명합니다.

1단계: Node.js 설치

먼저 시스템에 Node.js를 설치해야 합니다. 이는 공식 웹사이트 [nodejs.org](nodejs.org)의 다운로드 페이지를 통해 얻습니다. 다운로드 후 일반 단계에 따라 node 명령을 설치하고 사용하십시오. 다음 명령을 입력하여 설치가 성공했는지 확인합니다.

node -v

2단계: 프로젝트 만들기

먼저 새 Node.js 프로젝트를 만들고 사용하기 쉽도록 필요한 파일과 모듈을 추가합니다. 이 작업은 다음 명령을 사용하여 명령줄 인터페이스에서 수행할 수 있습니다.

mkdir search-engine && cd search-engine
npm init -y
touch index.js

프로젝트 루트 디렉터리에 새 폴더를 만들고 해당 폴더에 들어갔습니다. 그런 다음 npm init 명령을 사용하여 프로젝트의 코드 종속성, 작성자 및 기타 구성을 나열하는 새 package.json 파일을 생성합니다. 완료되면 index.js라는 기본 파일을 생성합니다. 여기서 대부분의 검색 논리를 작성하게 됩니다.

3단계: ElasticSearch 모듈 추가

Node.js 프로젝트에서는 ElasticSearch 모듈을 사용하여 검색 작업을 수행해야 합니다. 이 모듈은 인덱스 생성, 문서 검색, 데이터 삭제 등 다양한 기능을 제공하며, 프로젝트의 필요에 따라 구성하여 사용할 수 있습니다. 사용하려면 다음 명령을 사용하여 설치해야 합니다.

npm install elasticsearch --save

4단계: 검색 기능 구현

ElasticSearch에서 찾은 데이터를 문서 형식으로 변환하여 검색 기능을 구현하기 시작합니다. 다음 코드를 사용하여 이 작업을 수행할 수 있습니다.

const data = [
    { title: '文章1', body: '8月6日讯 北京市公安局交通管理局昨日通报称,自2018年8月5日至8月6日...(略)...', id: 1 },
    { title: '文章2', body: '8月6日讯 北京市公安局交通管理局昨日通报称,自2018年8月5日至8月6日...(略)...', id: 2 },
    { title: '文章3', body: '8月6日讯 北京市公安局交通管理局昨日通报称,自2018年8月5日至8月6日...(略)...', id: 3 },
    { title: '文章4', body: '8月6日讯 北京市公安局交通管理局昨日通报称,自2018年8月5日至8月6日...(略)...', id: 4 },
    { title: '文章5', body: '8月6日讯 北京市公安局交通管理局昨日通报称,自2018年8月5日至8月6日...(略)...', id: 5 },
    { title: '文章6', body: '8月6日讯 北京市公安局交通管理局昨日通报称,自2018年8月5日至8月6日...(略)...', id: 6 },
]

data.forEach(({ title, body, id }) => {
        elasticClient.index({
            index,
            body: {
                id,
                title,
                body
            }
        })
    })

이제 ElasticSearch를 사용하여 검색 작업을 수행할 준비가 되었습니다. 우리는 검색이라는 함수에 검색 프로세스를 캡슐화하려고 합니다. 이 함수는 쿼리 문자열, 문서 유형, 결과 수 등 여러 매개변수를 사용합니다. 검색을 구현하는 코드는 다음과 같습니다.

async function search({ query, type, limit }) {
        const { body } = await elasticClient.search({
            index,
            type,
            body: {
                size: limit,
                query: {
                    match: {
                        title: {
                            query,
                            fuzziness: 2
                        }
                    }
                }
            }
        });

        return body.hits.hits.map(({ _source }) => _source);
    }

이제 Node.js에서 간단하지만 강력한 검색 엔진을 구현할 수 있습니다. 웹 애플리케이션, 기업 내부 검색, 데이터 분석 등 다양한 활용 사례에 활용 가능합니다.

요약하자면, Node.js는 확장성이 뛰어나고 많은 요청을 처리할 수 있는 백엔드 시스템을 구축하는 데 도움이 되는 강력한 개발 도구입니다. 개별 모듈의 사용법을 학습함으로써 프로젝트 요구 사항을 지원하는 자체 검색 엔진을 구축할 수 있습니다. Node.js는 요청 처리 및 검색 수행과 같은 작업에 탁월하기 때문에 여전히 사용할 수 있는 최고의 백엔드 기술 중 하나로 남아 있습니다. 이 글의 연구와 실습을 통해 Node.js를 활용한 검색 기능 개발에 있어 독자들에게 도움이 되기를 바랍니다.

위 내용은 nodejs에서 검색 기능을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.