zoukankan      html  css  js  c++  java
  • sphinx配置与使用

       最近公司有个老项目想做个app,之前已经累积了蛮多数据,做接口给安卓对接时发现模糊查询实在太慢,所以就给这个接口重做做成用sphinx来查询了,几十万数据一下子就查出来了,果然是查询神器啊!另外老项目服务器环境是windows的,所以这里的随笔也是windows环境下的

    1. 直接在 http://www.sphinxsearch.com/downloads.html 找 到最新的 windows 版本,我这里下的是 32位的2.1.5的版本,下载后解压你喜欢的目录下;

    2.解压后配置一个sphinx.conf的文件,直接丢在sphinx/bin目录就好;

    3.sphinx.conf代码,你可以复制进去改一下参数和路径

    #配置数据源
    sourceIndex
    {
    	#要索引的数据库类型(mysql, pgsql, mssql, xmlpipe, xmlpipe2, odbc)
    	type			= mysql
    	#mysql服务器地址
    	sql_host		= localhost  
    	#数据库用户
    	sql_user		= root
    	#数据库密码
    	sql_pass		= 
    	#要进行全文索引的数据库
    	sql_db			= 
    	#数据库端口
    	sql_port		= 3306
    	#数据源的编码字符
    	sql_query_pre		= SET NAMES utf8
    	sql_query_pre           = SET SESSION query_cache_type=OFF
    	#数据源配置
    	sql_query = select id,title from pro_co
    	#sphinx需要读取的数据表主键信息
    	sql_query_info = select id,title from pro_co where id=$id
    }
    #配置数据源索引
    index myIndex
    {
    
    	source			= Index
    	path			= D:/sphinx/data/
    	#支持中文
        ngram_len       = 1
        ngram_chars      = U+3000..U+2FA1F
    	dict			= keywords
    	mlock			= 0
    	morphology		= none
    	min_word_len		= 1
    	charset_type		= utf-8
    	charset_table		= 0..9, A..Z->a..z, _, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F
    }
    
    
    
    
    indexer
    {
    	mem_limit		= 128M
    }
    
    searchd
    {
    
    	listen			= 9312
    	listen			= 9306:mysql41
    	log			= D:sphinxlogsearchd.log
    	query_log		= D:sphinxlogquery.log
    	read_timeout		= 5
    	client_timeout		= 300
    	max_children		= 30
    	persistent_connections_limit	= 30
    	pid_file		= D:sphinx/log/searchd.pid
    	max_matches		= 1000
    	seamless_rotate		= 1
    	preopen_indexes		= 1
    	unlink_old		= 1
    	mva_updates_pool	= 1M
    	max_packet_size		= 8M
    	max_filters		= 256
    	max_filter_values	= 4096
    	max_batch_queries	= 32
    	workers			= threads 
    }
    

      

    4,接下来用win+r输入cmd到sphinx/bin目录 输入 indexer.exe --all   

    5 , 接下来再输入searchd

    ok差不多了

    上面的配置已经配了中文搜索

    接下来就是新建一个php文件了

    <?php
    require './sphinxapi.php';
    $s = new SphinxClient();
    $s->SetServer('localhost',9312);
    $result = $s->Query('奥迪');
     var_dump($result);
    ?>

    就能使用sphinx查到你想要的了,真是简单粗暴

  • 相关阅读:
    elasticsearch文档
    swagger 接口文档
    IOS Pod install 443
    Celery 中文文档
    orm 不设置外建进行跨表查询
    There is no current event loop in thread
    django 中文文档
    MJRefresh 下拉刷新 上拉加载
    beeline导出hive数据
    什么是数据湖_二(转载)
  • 原文地址:https://www.cnblogs.com/doanddo/p/7637866.html
Copyright © 2011-2022 走看看