Lucene Query Syntax

donghwikim00·2025년 1월 24일

19_elastic_search

목록 보기
8/11

Lucene Query Syntax란?

  • 엘라스틱 서치(Elasticsearch)의 핵심 엔진인 Lucene에서 사용하는 간단한 뭐리 문법

기본 사용법

  • field:value 형식으로 쿼리문 작성
  • GET /my_index/_search?q=name:Elasticsearch
  • 대소문자 구분이 없음
  • 여러 조건 조합 가능 (AND, OR, NOT)

Lucene Query Syntax 예제 코드

const axios = require('axios');

const url = 'http://localhost:9200/test_index/_search?q=name:react';

axios.get(url)
    .then(res => {
        // console.log(res.data);
        const jsonRes = JSON.stringify(res.data, null, 2);
        console.log(jsonRes)
    })
    .catch(err =>{
        console.error(err);
    });
  • namereact인 데이터 출력

Lucene Query Syntax(AND) 예제 코드

const axios = require('axios');

const url = 'http://localhost:9200/test_index2/_search?q=name:react AND description:explore';

axios.get(url)
    .then(res => {
        // console.log(res.data);
        const jsonRes = JSON.stringify(res.data, null, 2);
        console.log(jsonRes)
    })
    .catch(err =>{
        console.error(err);
    });
  • 위 코드를 node 로 실행하면 namereact이면서 description 이 explore인 데이터들만 조회된다.

  • node <파일명> 명령어 사용함.

Lucene Query Syntax (OR)

const axios = require('axios');

const url = 'http://localhost:9200/test_index2/_search?q=name:react OR description:real-time';

axios.get(url)
    .then(res => {
        // console.log(res.data);
        const jsonRes = JSON.stringify(res.data, null, 2);
        console.log(jsonRes)
    })
    .catch(err =>{
        console.error(err);
    });
  • namereact이거나 설명이 real-time인 것들을 조회
  • 둘 중 한개만 만족해도 조회됨

Lucene Query Syntax (NOT) 예제

const axios = require('axios');

const url = 'http://localhost:9200/test_index/_search?q=name:Elasticsearch NOT description:Getting';

axios.get(url)
    .then(res => {
        // console.log(res.data);
        const jsonRes = JSON.stringify(res.data, null, 2);
        console.log(jsonRes)
    })
    .catch(err =>{
        console.error(err);
    });
  • nameElasticsearch이면서 descriptionGetting이 아닌 데이터 조회
profile
기술 블로그입니다. 여러 언어에 대한 정리, 프로젝트 설명 등을 기록합니다.

0개의 댓글