본문 바로가기
SERVER DEVELOPMENT/Docker

Docker에서 ElasticSearch로 Full-Text 검색하기(2)

by F.E.D 2023. 3. 5.

Docker에서 ElasticSearch로 Full-Text 검색하기(1)

지난 시간에 이어서, 이번에는 elasticsearch를 직접 사용해서 Full-Text 검색을 수행 해보도록 하겠습니다.

npm i elasticsearch
또는
yarn add elasticsearch

현재 Docker 컨테이너로 띄워져 있는 ealsticsearch에 연결 해봅시다.

const { Client } = require("elasticsearch");

const client = new Client({
  host: "http://localhost:9200",
  log: "trace",
});

위와 같이 작성하면 elasticsearch의 새 인스턴스가 생성되고 호스트와 포트가 지정됩니다.

디버깅에 도움이 되도록 로그 수준을 trace로 지정 했습니다.

 

다음으로, 데이터를 인덱싱하고 Full-text 검색한 결과를 로그로 나타내볼 수 있는 함수를 생성합니다.

const indexingData = async function (index, body) {
  const { body: response } = await client.index({
    index: index,
    body: body,
  });
  return response;
};

indexingData("indexing", {
  title: "Full-text 검색",
  content: "elk 검색 결과에 대해서..",
})
  .then((response) => console.log(response))
  .catch((error) => console.error(error));

다음으로, 검색 쿼리를 생성 해봅니다.

const searchQuery = async function (query) {
  const { body } = await client.search({
    index: "indexing",
    body: {
      query: {
        match: {
          content: query,
        },
      },
    },
  });
  return body.hits.hits;
};
searchQuery("Searching with query")
  .then((results) => console.log(results))
  .catch((error) => console.error(error));

이렇게 하면, Searching with query를 포함하는 Full-Text 검색을 수행 합니다.

 

다음 장에서는 elasticsearch의 검색 결과를 향상 시키는 작업을 해볼 예정입니다 : ) 

 

 

출처 : https://voskan.host/2023/02/18/full-text-search-with-node-js-and-elasticsearch-on-docker/?mibextid=S66gvF

댓글