답변 2개
채택된 답변
+20 포인트
2년 전
참고하셔서 원하시는 형식으로 구현하시면 되지 않을까 합니다.
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개
�
2년 전
로컬 환경에서 Elasticsearch-PHP 라이브러리를 Composer를 통해 설치한 후, 필요한 파일을 호스팅 계정으로 업로드하시면 사용하실 수 있습니다.
자세한 사용법은 구글링이나 해당 관련문서를 참조하시면 됩니다.
자세한 사용법은 구글링이나 해당 관련문서를 참조하시면 됩니다.
댓글을 작성하려면 로그인이 필요합니다.
블랙캣77
2년 전
새 글 게시판에서 구현을 하거나 새글 게시판은 일정 기간만 보관을 해서 새 글 게시판과 같이 통합된 정보를 저장하는 테이블을 만들고 해당에서 검색을 하셔야 합니다. 그누는 다 따로 테이블이 있어서 조인으로 합쳐서 하기에는 힘듭니다.
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
�
2년 전
새글출력은 힘들어서 게시판만 나오게 하려고 합니다 냑사이트에 예제를 참고해보려했지만 어디에도 나와있지 않네요 ㅠㅠ
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인전체 질문 목록
답변대기
답변대기
답변대기
답변대기
답변대기
답변대기
답변대기
답변대기
채택
답변대기
답변대기
답변대기
답변대기
채택
채택
답변대기
답변대기
답변대기
채택
