首页 > 系统相关 >windows下Sphinx + php 简易入门案例

windows下Sphinx + php 简易入门案例

时间:2023-08-09 14:24:43浏览次数:60  
标签:Sphinx GET windows cl phpstudy Extensions sql sphinx php

Sphinx3.5.1

windows使用流程

官网地址下载地址

下载完成后会有这样一个目录,新建data和log目录存放数据和日志

将etc目录的 sphinx.conf.dist 文件复制一份到 bin目录下,将.dist 删除

以下是我的配置文件,可以根据下面的进行修改,如果有特别的需求可以看下面3.x的文档

source doc
{
    
    type     = mysql
    sql_host = 127.0.0.1
    sql_user = root
    sql_pass = 123456
    sql_db   = dbname 
    sql_port = 3306 
    sql_query_pre = SET NAMES utf8
    sql_query = SELECT proId,siteLang, proName,subSkuTitle,naviId,price,brandId,saleNum FROM products where isOnSale = 1
    sql_attr_uint = siteLang
    sql_attr_uint = naviId
    sql_attr_uint = brandId
    sql_attr_uint = saleNum
    sql_attr_float = price
}

index products
{
    source  = doc
    path    = D:/phpstudy_pro/Extensions/sphinx/data/products #索引存放位置
    ngram_len = 1
}

indexer
{
    mem_limit       = 128M
}
searchd
{
    listen      = 9312
    listen      = 9306:mysql41
    log         = D:/phpstudy_pro/Extensions/sphinx/log/searchd.log  
    query_log   = D:/phpstudy_pro/Extensions/sphinx/log/query.log
    pid_file    = D:/phpstudy_pro/Extensions/sphinx/data/searchd.pid
    workers     = threads # for RT to work
    binlog_path = D:/phpstudy_pro/Extensions/sphinx/data
}

通过命令创建索引

​ 通过命令行cd到sphinx下的bin目录 --all 是全部索引一起创建 --products 也可以创建指定的索引

.\indexer.exe --all

索引创建完成后可以通过mysql查看创建的数据是否存在问题

​ 新开一个CMD窗口,到mysql目录下

 D:\phpstudy_pro\Extensions\MySQL8.0.12\bin> .\mysql.exe -h 127.0.0.1 -P 9306

连接到创建的索引

然后测试使用官方的sdk 测试

D:\phpstudy_pro\Extensions\sphinx\api 找到 sphinxapi.php到项目文件引入或者直接复制过去

<?php
$t1 = microtime(true);
require ("sphinxapi.php");
$cl = new SphinxClient();

$cl->SetServer('127.0.0.1',9312);
$cl->SetArrayResult(true);
$cl->SetConnectTimeout(60);

$page = $_GET['page'] ?? 0;
$pageSize = 40;
$cl->SetLimits($page * $pageSize, $pageSize, 1000);
if (!empty($_GET['priceSort'])) {
    //排序
    if (strtoupper($_GET['priceSort']) == 'ASC') {
        $cl->SetSortMode(SPH_SORT_EXTENDED,'price ASC');
    }
    if (strtoupper($_GET['priceSort']) == 'DESC') {
        $cl->SetSortMode(SPH_SORT_EXTENDED,'price DESC');
    }
}


if (!empty($_GET['minPrice']) && !empty($_GET['maxPrice'])) {
    //区间查询
    $cl->setFilterRange('price',$_GET['minPrice'],$_GET['maxPrice']);
}



// $cl->SetSortMode(SPH_SORT_EXTENDED, "@weight DESC");
// $cl->setGroupBy('price',SPH_GROUPBY_ATTR);
// $cl->SetSortMode(SPH_SORT_ATTR_DESC,'price');

$cl->SetFilter('siteLang',[3]);

$keyword = $_GET['keyword'] ?? '';
if (empty($keyword)) {
    echo "keyword not empty!";exit;
}
print_r($cl);
$res = $cl->Query($keyword,'products');

if ( $res===false )
{
    print "Query failed: " . $cl->GetLastError() . ".\n";
    exit;

} 

print_r($res);

文档地址

标签:Sphinx,GET,windows,cl,phpstudy,Extensions,sql,sphinx,php
From: https://www.cnblogs.com/kxcoder/p/17616738.html

相关文章

  • 【Windows】cmd命令-vmic
    wmic是计算机管理工具,提供给管理员以命令行的方式管理计算机语法wmic[全局开关][别名][wql语句][动词][参数列表][动词开关]别名:是给主板、服务、系统、进程、磁盘等各种组件设定的名称,用于标识它们。wql语句:跟SQL语句相似,一般有where条件子句:wherenam......
  • PHP写一个 Api接口需要注意哪些?考虑哪些?
    随着互联网的飞速发展,前后端分离的开发模式越来越流行。编写一个稳定、可靠和易于使用的API接口是现代互联网应用程序的关键。本文将介绍在使用thinkphp6框架开发API接口时需要注意的要点和考虑的问题,并提供详细的逻辑步骤和代码案例。1.设计请求与响应数据结构在开始编......
  • 如何用PHP写接口
    当用PHP编写API接口时,可以使用PHP中的框架(如Laravel、Symfony、CodeIgniter等)来简化开发过程。接下来,以使用Laravel框架为例,提供一个简单的示例代码:首先,确保已经安装了Laravel框架,并在命令行中进入项目目录,执行以下命令创建一个新的API控制器和路由:phpartisanmake:controller......
  • 用PHP封装一个强大且通用的cURL方法
    用PHP封装一个强大且通用的cURL方法。用PHP封装一个强大且通用的cURL方法。用PHP封装一个强大且通用的cURL方法。用PHP封装一个强大且通用的cURL方法。/***@function强大且通用的cURL请求库*@param$urlstring路径如:https://example.com......
  • windows 下配置SSH服务端和SSH连接
    一、安装SSH 较新的windows操作系统一般会系统自带,或者在应用与功能开启下载安装文件https://github.com/PowerShell/Win32-OpenSSH运行安装 msiexec/iD://openssh-win32.msi检查SSH服务的状态。在PowerShell中,运行:Get-Service-Namessh* 二、客户......
  • windows使用/服务(13)戴尔电脑怎么设置通电自动开机
    戴尔pc机器通电自启动1、将主机显示器键盘鼠标连接好后,按主机电源键开机2、在开机过程中按键盘"F12",进入如下界面,选择“BIOSSETUP”3、选择“PowerManagement”4、选择“ACRecovery”,点选“PowerOn”,点击“Apply”5、勾选“SaveasCustomUserSetting”,点击OK6、点......
  • go 程序在windows 下已管理员方式启动
    funcAmAdmin()bool{ _,err:=os.Open("\\\\.\\PHYSICALDRIVE0") iferr!=nil{ fmt.Println("adminno") returnfalse } fmt.Println("adminyes") returntrue}funcRunMeElevated(){ verb:="runas"......
  • docker部署php7.3+nginx
    1.拉取php+nginx镜像dockerpullphp:7.3.24-fpm-stretchdockerpullnginx:latest 2.启动PHP:dockerrun-d-v/var/www/test:/var/www/html-p9000:9000--namexy_phpfpmphp:7.3.24-fpm-stretch 参数说明-d让容器在后台运行-p添加主机到容器的端口映射-......
  • 基于php的动漫网站设计
    本网站开发采用PHP编程语言和MySQL作为后台数据库进行开发,利用VScode作为集成开发,基于PHP的动漫网站主要面向普通用户和管理员用户,通过调查分析,系统主要的功能需求如下:1、动漫栏目管理:实现动漫栏目信息的添加、修改、删除和查询2、动漫资源管理:实现动漫资源信息的添加、修改、删除......
  • windows11 docker desktop 安装
      windows11运行docker 下载dockerdesktop https://www.docker.com/ 安装完后会提示要重启电脑 打开dockerdesktop如果报wsl版本软低要更新(docker启动失败) wslkernelversiontoolow打开cmd 运行wsl--update 再次打开dockerdesktop启动成......