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

PHPz
풀어 주다: 2023-04-17 17:08:27
원래의
1275명이 탐색했습니다.

우리 모두 알고 있듯이 현대 네트워크 기술은 극도로 발전한 수준에 도달했으며 네트워크에는 많은 양의 정보가 존재하며 사람들의 사용과 함께 매일 증가하고 있습니다. 따라서 검색 엔진은 우리가 일상적으로 사용하는 데 필수적인 도구가 되었습니다. 백엔드 개발 분야에서 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!