>  기사  >  백엔드 개발  >  PHP 및 coreseek 기반 소셜 미디어 콘텐츠 검색 도구 구축

PHP 및 coreseek 기반 소셜 미디어 콘텐츠 검색 도구 구축

王林
王林원래의
2023-08-06 18:05:011206검색

PHP 및 coreseek를 기반으로 소셜 미디어 콘텐츠 검색 도구 구축

소셜 미디어가 발전하면서 사람들은 정보를 얻고 소통하기 위해 소셜 플랫폼에 점점 더 의존하고 있습니다. 그러나 소셜미디어 콘텐츠가 계속 증가함에 따라 필요한 정보를 어떻게 빠르고 정확하게 검색할 수 있는지가 특히 중요해졌습니다. 이 기사에서는 PHP와 coreseek를 사용하여 효율적인 소셜 미디어 콘텐츠 검색 도구를 구축하는 방법을 소개하고 해당 코드 예제를 제공합니다.

  1. 준비
    시작하기 전에 다음 환경과 도구를 준비해야 합니다.
  • PHP 설치: PHP 공식 웹사이트에서 최신 버전의 PHP를 다운로드하여 설치합니다.
  • MySQL 및 coreseek 설치: coreseek는 오픈 소스 검색 엔진 Sphinx를 기반으로 한 중국 검색 엔진입니다. 이 기사는 주로 중국 소셜 미디어 콘텐츠 검색에 중점을 두기 때문에 검색 엔진으로 coreseek를 선택합니다. Coreseek은 coreseek 공식 홈페이지에서 다운로드 및 설치가 가능합니다.
  • SphinxAPI 확장 설치: SphinxAPI는 Sphinx 검색 엔진에 연결하기 위한 PHP용 확장입니다. SphinxAPI를 PHP에 포함시켜야 합니다. Sphinx API 확장은 Sphinx 공식 웹사이트에서 다운로드할 수 있습니다.
  1. 데이터베이스 및 테이블 만들기
    먼저 소셜 미디어 콘텐츠와 해당 인덱스를 저장할 MySQL 데이터베이스와 테이블을 만들어야 합니다. 다음 코드를 사용하여 MySQL에서 "social_media"라는 데이터베이스를 만듭니다.
CREATE DATABASE social_media;

그런 다음 "content"라는 테이블을 만들어 소셜 미디어 콘텐츠와 해당 인덱스를 저장합니다. 다음 코드를 사용하여 테이블을 생성합니다.

USE social_media;

CREATE TABLE content (
  id INT(11) PRIMARY KEY AUTO_INCREMENT,
  title VARCHAR(255) NOT NULL,
  content TEXT NOT NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
  1. Configure coreseek
    coreseek가 설치된 후 MySQL 데이터베이스에 연결하고 해당 인덱스를 생성하도록 coreseek를 구성해야 합니다. coreseek의 구성 파일 "sphinx.conf"를 열고 다음 구성 항목을 찾아 해당 값으로 수정합니다.
source social_media {
  type          = mysql
  sql_host      = localhost
  sql_user      = <MySQL用户名>
  sql_pass      = <MySQL密码>
  sql_db        = social_media
  sql_port      = 3306  # MySQL端口号
  sql_query     = SELECT id, title, content FROM content
}

index social_media_index {
  type          = plain
  source        = social_media
  path          = <索引文件存储路径>
}

searchd {
  listen        = 9312
  log           = <日志文件路径>
  query_log     = <查询日志文件路径>
  read_timeout  = 5
  max_children  = 30
  pid_file      = <PID文件路径>
  seamless_rotate = 1
}

"865ea181a51413518caeebd4412868f8", "c297d8592d696147cf1a349c37d72733", "< 인덱스 교체 파일 저장 경로>", "", "" 및 ""를 해당 실제 값으로 바꿉니다.

  1. PHP 코드 작성
    이제 coreseek 검색 엔진에 연결하고 소셜 미디어 콘텐츠를 검색하는 PHP 코드 작성을 시작할 수 있습니다. 먼저 Sphinx API 확장을 포함해야 합니다:
<?php
// 包含SphinxAPI扩展
require_once('path/to/sphinxapi.php');

// 配置搜索引擎连接参数
$host = 'localhost';
$port = 9312;
$index = 'social_media_index';

// 创建SphinxClient对象
$sphinx = new SphinxClient();
$sphinx->setServer($host, $port);
$sphinx->setConnectTimeout(1);
$sphinx->setArrayResult(true);

다음으로 검색 작업을 수행하는 함수를 작성할 수 있습니다:

function searchContent($keyword)
{
  global $sphinx, $index;
  
  // 设置搜索关键字
  $sphinx->setMatchMode(SPH_MATCH_EXTENDED);
  $sphinx->setLimits(0, 10); // 设置搜索结果数量
  
  // 执行搜索
  $result = $sphinx->query($keyword, $index);
  
  // 处理搜索结果
  if ($result['total_found'] > 0) {
    echo "Found " . $result['total_found'] . " results:
";
    
    foreach ($result['matches'] as $match) {
      $id = $match['id'];
      // 根据ID查询详细内容
      // ...
    }
  } else {
    echo "No results found.
";
  }
}

그런 다음 이 함수를 호출하여 검색 작업을 수행할 수 있습니다.

$searchKeyword = 'social media'; // 搜索关键字
searchContent($searchKeyword);

검색할 수 있습니다 실제 필요에 따른 키워드에 대한 검색결과 전달 및 처리

  1. 검색 결과 표시 개선
    검색 결과를 얻은 후 필요에 따라 자세한 소셜 미디어 콘텐츠를 추가로 쿼리하고 표시할 수 있습니다. 다음 코드를 사용하여 세부 콘텐츠를 쿼리할 수 있습니다.
function getContentDetail($id)
{
  // 查询社交媒体内容详细信息
  // ...
}

콘텐츠 검색 함수에서 이 함수를 호출하여 세부 콘텐츠를 가져옵니다.

foreach ($result['matches'] as $match) {
  $id = $match['id'];
  
  // 查询详细内容
  $detail = getContentDetail($id);
  if ($detail) {
    echo "Title: " . $detail['title'] . "
";
    echo "Content: " . $detail['content'] . "
";
  }
}

검색 결과 표시 루프에서 쿼리 세부정보를 호출하는 코드를 입력합니다. 관련 소셜 미디어 콘텐츠 정보를 표시합니다.

  1. 요약
    이 글에서는 PHP와 coreseek를 사용하여 효율적인 소셜 미디어 콘텐츠 검색 도구를 구축하는 방법을 소개합니다. coreseek 검색 엔진을 구성하고 해당 PHP 코드를 작성하면 소셜 미디어 콘텐츠를 빠르고 정확하게 검색하고 관련 세부 정보를 표시할 수 있습니다. 물론 이것은 단지 기본적인 예일 뿐이며 실제 필요에 따라 더 복잡한 기능을 확장하고 최적화할 수 있습니다. 이 기사가 자신만의 소셜 미디어 콘텐츠 검색 도구를 구축하는 데 도움이 되기를 바랍니다.

위 내용은 PHP 및 coreseek 기반 소셜 미디어 콘텐츠 검색 도구 구축의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.