테스트 사이트 - 개발 중인 베타 버전입니다

전체검색 게시판출력 채택완료

위솔루션 1년 전 조회 1,970

게시판이 방대해지면 게시판 찾기가 어려워지는데

전체검색창에 연관단어를 입력했을때 게시판이 나오게 구현을 어떻게 하는건가요?

 

 

그누보드의 발전을 기원합니다.

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트

참고하셔서 원하시는 형식으로 구현하시면 되지 않을까 합니다.

 

Elasticsearch-PHP 라이브러리 설치

</p>

<p>composer require elasticsearch/elasticsearch

 

</p>

<p><?php</p>

<p>require 'vendor/autoload.php';</p>

<p>// Elasticsearch 연결 설정

$hosts = [

    [

        'host' => 'localhost',

        'port' => 9200,

    ],

];</p>

<p>$client = Elasticsearch\ClientBuilder::create()

    ->setHosts($hosts)

    ->build();</p>

<p>// 인덱스 생성 (실제로는 필요에 따라 이미 생성된 인덱스를 사용해야 합니다.)

$indexParams = [

    'index' => '게시판인덱스',

    'body' => [

        'settings' => [

            'number_of_shards' => 1,

            'number_of_replicas' => 0,

        ],

    ],

];</p>

<p>$client->indices()->create($indexParams);</p>

<p>// 게시판 데이터 샘플 입력

$게시판데이터 = [

    ['게시판이름' => '기술게시판', '게시판내용' => '프로그래밍 관련 정보 공유'],

    ['게시판이름' => '여행게시판', '게시판내용' => '여행지 추천과 경험 공유'],

    ['게시판이름' => '요리게시판', '게시판내용' => '레시피 공유와 요리 팁'],

];</p>

<p>// Elasticsearch에 데이터 색인

foreach ($게시판데이터 as $idx => $data) {

    $params = [

        'index' => '게시판인덱스',

        'type' => '_doc',

        'id' => $idx + 1,

        'body' => $data,

    ];</p>

<p>    $client->index($params);

}</p>

<p>// 전체검색 함수

function 전체검색($연관단어)

{

    global $client;</p>

<p>    // Elasticsearch 쿼리 작성

    $검색쿼리 = [

        'index' => '게시판인덱스',

        'body' => [

            'query' => [

                'multi_match' => [

                    'query' => $연관단어,

                    'fields' => ['게시판이름', '게시판내용'],

                ],

            ],

        ],

    ];</p>

<p>    // Elasticsearch에서 검색 실행

    $검색결과 = $client->search($검색쿼리);</p>

<p>    // 검색 결과 반환

    return $검색결과['hits']['hits'];

}</p>

<p>// 사용자가 입력한 연관단어

$사용자입력 = '기술';</p>

<p>// 전체검색 실행

$결과 = 전체검색($사용자입력);</p>

<p>// 결과 출력 또는 처리

foreach ($결과 as $hit) {

    print_r($hit['_source']);

}

 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 6개

위솔루션
1년 전
와우 정성 감사합니다 코딩초보라 elasticsearch-8.11.1 다운받았지만 어떻게 시작을 해야할지..
웹메이킹
1년 전
로컬 환경에서 Elasticsearch-PHP 라이브러리를 Composer를 통해 설치한 후, 필요한 파일을 호스팅 계정으로 업로드하시면 사용하실 수 있습니다.
자세한 사용법은 구글링이나 해당 관련문서를 참조하시면 됩니다.
위솔루션
1년 전
https://www.youtube.com/watch?v=fBfUr_8Pq8A 이 강의가 맞을까요
위솔루션
1년 전
https://github.com/elastic/elasticsearch-php
웹메이킹
1년 전
해당 영상도 도움이 될 수 있습니다. 기본부터 들으시면 될 것 같습니다.
위솔루션
1년 전
감사합니다 웹메이킹님. 기본부터 다지고 오겠습니다.!

댓글을 작성하려면 로그인이 필요합니다.

1년 전

새 글 게시판에서 구현을 하거나 새글 게시판은 일정 기간만 보관을 해서 새 글 게시판과 같이 통합된 정보를 저장하는 테이블을 만들고 해당에서 검색을 하셔야 합니다. 그누는 다 따로 테이블이 있어서 조인으로 합쳐서 하기에는 힘듭니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

위솔루션
1년 전
새글출력은 힘들어서 게시판만 나오게 하려고 합니다 냑사이트에 예제를 참고해보려했지만 어디에도 나와있지 않네요 ㅠㅠ

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인