• coreseek 測試用例


    準備材料

    測試數據:article.sql
    配置文件:csft_mysql.conf
    php測試代碼:test_coreseek.php

    測試數據(sql)

    CREATE TABLE `article` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `title` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL,
      `content` text COLLATE utf8mb4_general_ci,
      `pub_date` int(11) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
    
    -- ----------------------------
    -- Records of article
    -- ----------------------------
    INSERT INTO `article` VALUES ('1', '武漢疫情', '2020年初,武漢發生疫情,成為重災區', null);
    INSERT INTO `article` VALUES ('2', '武漢第一線', '疫情逐漸好轉', null);
    INSERT INTO `article` VALUES ('3', '上級指導思想', '公司領導統一安排', null);
    

    配置文件(code) csft_mysql.conf

    #MySQL数据源配置,详情请查看:http://www.coreseek.cn/products-install/mysql/
    #请先将var/test/documents.sql导入数据库,并配置好以下的MySQL用户密码数据库
    
    #源定义
    source mysql
    {
        type                    = mysql
        sql_host                = localhost
        sql_user                = root
        sql_pass                = root
        sql_db                  = coreseek
        sql_port                = 3306
        sql_query_pre            = SET NAMES utf8
    
        #sql_query第一列id需为整数
        #title、content作为字符串/文本字段,被全文索引
        sql_query                = SELECT id, UNIX_TIMESTAMP(pub_date) AS pub_date, title, content FROM article
                                                                  
                                                                  
        #从SQL读取到的值必须为整数
        #sql_attr_uint            = group_id        
    
        #从SQL读取到的值必须为整数,作为时间属性   	
        sql_attr_timestamp        = pub_date 			
    
        #命令行查询时,设置正确的字符集
        sql_query_info_pre      = SET NAMES utf8                        
    
        #命令行查询时,从数据库读取原始数据信息	
        sql_query_info            = SELECT * FROM article WHERE id=$id 
    }
    
    #index定义
    index mysql
    {
        #对应的source名称
        source          = mysql             
    	
        #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...
        path            = D:/Coreseek/var/data/mysql 
        docinfo         = extern
        mlock           = 0
        morphology      = none
        min_word_len    = 1
        html_strip      = 0
    
        #中文分词配置,详情请查看:http://www.coreseek.cn/products-install/coreseek_mmseg/
        #charset_dictpath = /usr/local/mmseg3/etc/ #BSD、Linux环境下设置,/符号结尾
    	
        #Windows环境下设置,/符号结尾,最好给出绝对路径,例如:C:/usr/local/coreseek/etc/...
        charset_dictpath = D:/Coreseek/etc/                             
        charset_type        = zh_cn.utf-8
    }
    
    #全局index定义
    indexer
    {
        mem_limit            = 128M
    }
    
    #searchd服务定义
    searchd
    {
        listen              = 9312
        read_timeout        = 5
        max_children        = 30
        max_matches         = 1000
        seamless_rotate     = 0
        preopen_indexes     = 0
        unlink_old          = 1
        pid_file = D:/Coreseek/var/log/searchd_mysql.pid  #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...
        log = D:/Coreseek/var/log/searchd_mysql.log        #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...
        query_log = D:/Coreseek/var/log/query_mysql.log #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...
    }
    

    生成索引(shell)

    d:/Coreseek/bin/indexer -c d:/Coreseek/etc/csft_mysql.conf --all
    

    啟動coreseek服務(shell)

    d:/Coreseek/bin/searchd -c d:/Coreseek/etc/csft_mysql.conf
    

    php 測試 (code)

    <?php
    
    $word = $_GET['w'] ?? "疫情";
    
    require ( "sphinxapi.php" );
    $cl = new SphinxClient ();
    $cl->SetServer ( '127.0.0.1', 9312);
    $cl->SetConnectTimeout ( 3 );
    $cl->SetArrayResult ( true );
    $cl->SetMatchMode ( SPH_MATCH_ANY);
    $res = $cl->Query ( $word, "*" );
    echo "<pre>";
    //print_r($cl);
    print_r($res);
    

    測試結果 (shell)

    php D:phpstudyWWWcoreseekindex.php
    

  • 相关阅读:
    Modernizr使用指南(转)
    使用Func<>和Action简化委托
    实现类似MVC ViewBag类型的对象
    更改服务器的SID 加入域控制器提示SID重复
    SQL SERVER 执行大于80M的SQL 脚本
    完全关闭IIS日志,包括System32下的LogFile
    MVC不用302跳转Action,内部跳转
    SHA1l加密
    获取当前时间戳
    invoke反射
  • 原文地址:https://www.cnblogs.com/qq917937712/p/12504357.html
Copyright © 2020-2023  润新知