ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Docker에서 ElasticSearch로 Full-Text 검색하기(2)
    SERVER DEVELOPMENT/Docker 2023. 3. 5. 17:12

    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

Designed by Tistory.