답변 2개
채택된 답변
+20 포인트
1년 전
참고하셔서 원하시는 형식으로 구현하시면 되지 않을까 합니다.
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년 전
감사합니다 웹메이킹님. 기본부터 다지고 오겠습니다.!
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인