엘라스틱서치 php 관련 질문


(김규홍) #1

우선 현재 진행 상황을 설명드리겠습니다.

  1. 서버 : ubuntu
  2. DB : mysql
  3. 언어 : php

서버는 aws ec2를 사용중입니다.
우선 테스트 서버를 현재 서비스와 동일하게 구축하여
테스트 서버에 elasticsearch과 logstash를 설치하였습니다.
logstash를 사용하여 데이터베이스에 있는 데이터를 elasticsearch에 인덱싱 하는 작업은 테스트로 성공한 상태이며,
elasticsearch php api를 사용하여 웹에서 json으로 데이터를 잘 가지고 오는 것은 확인하였습니다.

해결되지 않은 부분을 설명 드리자면

  1. elasticsearch로 리스트 검색을 진행하려고 합니다.
    테이블 구조상 DB에 있는 3개의 테이블을 join하여 데이터를 가지고 와야 합니다.
    그런데 logstash에 query를 넣는 부분에 3개의 테이블을 join한 쿼리를 넣은 결과
    데이터베이스에서는 4000개의 데이터가 나와야 하지만 elasticsearch에서는 2000개정도밖에 나오지 않아
    그 부분을 해결하지 못하고있습니다.

포럼이나 자료들을 찾아본 결과 parent-child라는 elasticsearch에서 join대신 사용하는 것이 있는데
php에서 어떻게 사용을 해야될지 예제나 그런자료들이 부족해서 진행을 못하고 있는 상태입니다.

  1. elasticsearch를 통해 자동완성기능을 구현하려고 하는데
    형태소분석기를 달아 진행하려고 하였습니다.
    형태소분석기는 mecab-ko(은전한닢)을 설치하여 사용하려 하는데
    php api에서 어떻게 진행해야 하는지 감이 오지 않아 막막한 상태입니다.

위의 두가지 경우를 기술적인 도움이나 좀 더 좋은 방법으로 구현할 수 있는지 알고 싶습니다.
두가지 뿐만 아니라 혹시나 elasticsearch에 대한 이해가 부족한 면을 보완하고 싶고, 배울 수 있으면 합니다.

curl사용이라던지 그런것들이 익숙하지 않아 더 헤매는 것 같습니다.

어떤식으로하면 효율적으로 검색엔진을 달지 도움을 받고싶습니다.
감사합니다.


(Changbae Jeon) #2

1번의 경우는 예시를 어느정도 제공을 해주셔야지 원인 파악이 될 것 같습니다.
2번의 경우는 일단 형태소분석기를 설치하는 것은 Elasticsearch에 플러그인 형태로 설치되는 것이라 API의 형태와는 상관없이 설치가 가능합니다.
php-api를 사용하는 것은 단순히 검색의 형태만 달라지는 것이라 기존에 있는 자동완성예제들을 천천히 살펴보시면 무리 없이 이해를 하실 거 같습니다.


(system) #3

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.