Elasticsearch와 PHP를 사용하여 지능형 질문 및 답변 시스템을 구축하는 방법
소개:
인공 지능 기술의 급속한 발전과 함께 지능형 질문 및 답변 시스템은 점차 사람들이 정보를 얻는 중요한 방법이 되고 있습니다. 강력한 검색 엔진인 Elasticsearch는 빠르고 효율적인 전체 텍스트 검색 및 분석 기능을 갖추고 있으며 지능형 질문 및 답변 시스템에 대한 강력한 지원을 제공할 수 있습니다. 이 기사에서는 Elasticsearch와 PHP를 사용하여 간단한 지능형 질문 및 답변 시스템을 구축하는 방법을 소개하고 해당 코드 예제를 제공합니다.
1단계: 인덱스 생성 및 데이터 가져오기
먼저 Elasticsearch에서 질문과 답변을 저장할 인덱스를 생성해야 합니다. 인덱스 이름이 "qna"이고 "질문"과 "답변"이라는 두 개의 필드가 있다고 가정합니다. Elasticsearch에서는 PHP Elasticsearch 클라이언트를 사용하여 인덱스를 생성하고 데이터를 가져올 수 있습니다. 예는 다음과 같습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | <?php
require 'vendor/autoload.php' ;
$client = ElasticsearchClientBuilder::create()->build();
$params = [
'index' => 'qna' ,
'body' => [
'settings' => [
'number_of_shards' => 1,
'number_of_replicas' => 0,
],
'mappings' => [
'properties' => [
'question' => [
'type' => 'text' ,
],
'answer' => [
'type' => 'text' ,
],
],
],
],
];
$response = $client ->indices()->create( $params );
$data = [
[ 'question' => '什么是Elasticsearch?' , 'answer' => 'Elasticsearch是一个开源的分布式搜索引擎。' ],
[ 'question' => '如何在PHP中使用Elasticsearch?' , 'answer' => '可以使用PHP Elasticsearch客户端库来与Elasticsearch进行交互。' ],
];
foreach ( $data as $row ) {
$params = [
'index' => 'qna' ,
'body' => $row ,
];
$client ->index( $params );
}
|
로그인 후 복사
2단계: 검색 API 생성
다음으로 질문 검색 기능을 구현하기 위한 PHP 코드를 작성해야 합니다. Elasticsearch의 검색 API를 사용하여 전체 텍스트 검색을 구현할 수 있으며, 검색 결과는 관련성에 따라 정렬됩니다. 다음은 간단한 검색 API 예입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <?php
require 'vendor/autoload.php' ;
$client = ElasticsearchClientBuilder::create()->build();
$params = [
'index' => 'qna' ,
'body' => [
'query' => [
'match' => [
'question' => '什么是Elasticsearch?' ,
],
],
],
];
$response = $client ->search( $params );
foreach ( $response [ 'hits' ][ 'hits' ] as $hit ) {
echo '问题:' . $hit [ '_source' ][ 'question' ] . PHP_EOL;
echo '答案:' . $hit [ '_source' ][ 'answer' ] . PHP_EOL;
echo PHP_EOL;
}
|
로그인 후 복사
3단계: 프런트 엔드 인터페이스 및 사용자 상호 작용
마지막 단계는 프런트 엔드 인터페이스 및 사용자 상호 작용을 만드는 것입니다. PHP를 사용하여 사용자가 질문을 입력하고 검색 결과를 표시할 수 있는 간단한 웹 인터페이스를 작성할 수 있습니다. 다음은 간단한 예입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | <!DOCTYPE html>
<html lang= "en" >
<head>
<meta charset= "UTF-8" >
<title>智能问答系统</title>
</head>
<body>
<h1>智能问答系统</h1>
<form action= "search.php" method= "get" >
<label for = "question" >请输入您的问题:</label>
<input type= "text" name= "question" id= "question" >
<button type= "submit" >搜索</button>
</form>
<h2>搜索结果:</h2>
<?php
require 'vendor/autoload.php' ;
$client = ElasticsearchClientBuilder::create()->build();
$question = $_GET [ 'question' ] ?? '' ;
$params = [
'index' => 'qna' ,
'body' => [
'query' => [
'match' => [
'question' => $question ,
],
],
],
];
$response = $client ->search( $params );
foreach ( $response [ 'hits' ][ 'hits' ] as $hit ) {
echo '<p>问题:' . $hit [ '_source' ][ 'question' ] . '</p>' ;
echo '<p>答案:' . $hit [ '_source' ][ 'answer' ] . '</p>' ;
echo '<hr>' ;
}
?>
</body>
</html>
|
로그인 후 복사
결론:
이 기사에서는 Elasticsearch와 PHP를 사용하여 간단한 지능형 질문 응답 시스템을 구축하는 방법을 간략하게 소개합니다. Elasticsearch의 전체 텍스트 검색 및 분석 기능을 사용하여 관련 질문을 신속하게 검색하고 해당 답변을 제공할 수 있습니다. 최종 효과는 사용자에게 정보를 얻는 편리하고 효율적인 방법을 제공합니다.
위 내용은 지능형 질의응답 시스템을 구축하는 일반적인 과정입니다.
위 내용은 Elasticsearch와 PHP를 사용하여 지능형 질문 응답 시스템을 구축하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!