国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

sphinx實現聯合查詢幾個例子

2024-07-24 12:39:55
字體:
來源:轉載
供稿:網友

sphinx也就是一個像mysql數據庫的工具了,我們可以在linux中使用sphinx來替換mysql了,下面小編整理了幾個sphinx聯合查詢的語句,記得以前sphinx是不支持聯合查詢的,第一次接觸sphinx,好像2010年初的時候,當時寫過一篇關于sphinx安裝的文章,sphinx mmseg mysql 中文分詞,下面舉例說明,sphinx的聯合查詢用法.

一,添加二張測試表和數據,代碼如下:

1,users表和數據

  1. mysql> desc users;   
  2. +----------+-------------+------+-----+---------+----------------+   
  3. | Field | Type | Null | Key | Default | Extra |   
  4. +----------+-------------+------+-----+---------+----------------+   
  5. | user_id | int(11) | NO | PRI | NULL | auto_increment |   
  6. | username | varchar(20) | NO | | NULL | |   
  7. +----------+-------------+------+-----+---------+----------------+   
  8. rows in set (0.00 sec)   
  9.   --Vevb.com 
  10. mysql> select * from users;   
  11. +------------+------------+   
  12. | user_id | username |   
  13. +------------+------------+   
  14. | 1311895262 | 張三 |   
  15. | 1311895263 | tank張二 |   
  16. | 1311895264 | tank張一 |   
  17. | 1311895265 | tank張 |   
  18. +------------+------------+   
  19. rows in set (0.00 sec) 

2,orders表和數據

  1. mysql> desc orders;   
  2. +--------------+-------------+------+-----+---------+----------------+   
  3. | Field | Type | Null | Key | Default | Extra |   
  4. +--------------+-------------+------+-----+---------+----------------+   
  5. | id | int(11) | NO | PRI | NULL | auto_increment |   
  6. | user_id | int(11) | NO | | NULL | |   
  7. | create_time | datetime | NO | | NULL | |   
  8. | product_name | varchar(20) | NO | | NULL | |   
  9. | summary | text | NO | | NULL | |   
  10. +--------------+-------------+------+-----+---------+----------------+   
  11. rows in set (0.00 sec)   
  12.    
  13. mysql> select * from orders;   
  14. +----+------------+---------------------+----------------+--------------+   
  15. | id | user_id | create_time | product_name | summary |   
  16. +----+------------+---------------------+----------------+--------------+   
  17. | 9 | 1311895262 | 2014-08-01 00:24:54 | tank is 坦克 | 技術總監 |   
  18. | 10 | 1311895263 | 2014-08-01 00:24:54 | tank is 坦克 | 技術經理 |   
  19. | 11 | 1311895264 | 2014-08-01 00:24:54 | tank is 坦克 | DNB經理 |   
  20. | 12 | 1311895265 | 2014-08-01 00:24:54 | tank is 坦克 | 運維總監 |   
  21. +----+------------+---------------------+----------------+--------------+   
  22. rows in set (0.00 sec) 

二,配置sphinx.conf,代碼如下:

  1. source order   
  2. {   
  3.  type = mysql   
  4.  sql_host = localhost   
  5.  sql_user = root   
  6.  sql_pass =   
  7.  sql_db = test   
  8.  sql_query_pre = SET NAMES utf8   
  9.  sql_query = \   
  10.  SELECT a.id, a.user_id,b.username, UNIX_TIMESTAMP(a.create_time) AS create_time, a.product_name, a.summary \   
  11.  FROM orders a left join users b on a.user_id = b.user_id   
  12.  sql_attr_uint = user_id   
  13.  sql_field_string = username   
  14.  sql_field_string = product_name   
  15.  sql_attr_timestamp = create_time   
  16.  sql_ranged_throttle = 0   
  17.  sql_query_info = SELECT * FROM orders WHERE id=$id   
  18. }   
  19.    
  20. index myorder   
  21. {   
  22.  source = order   
  23.  path = /usr/local/sphinx/var/data/myorder   
  24.  docinfo = extern   
  25.  mlock = 0   
  26.  morphology = none   
  27.  min_word_len = 1   
  28.  charset_dictpath = /usr/local/mmseg3/etc/   
  29.  charset_type = zh_cn.utf-8   
  30.  ngram_len = 0   
  31.  html_strip = 0   

注意:在這里a.user_id = b.user_id,等號二邊一定要有空格,不然就會報錯.

三,重啟sphinx,代碼如下:

  1. # pkill searchd   
  2. # /usr/local/sphinx/bin/indexer --config /usr/local/sphinx/etc/sphinx.conf --all   
  3. # /usr/local/sphinx/bin/searchd --config /usr/local/sphinx/etc/sphinx.conf 

四,測試sphinx,代碼如下:

  1. [root@localhost etc]# mysql -h 127.0.0.1 -P 9306 //登錄sphinx,9306端口,不是真實的mysql   
  2. Welcome to the MySQL monitor. Commands end with ; or \g.   
  3. Your MySQL connection id is 1   
  4. Server version: 1.11-id64-dev (r2540)   
  5.    
  6. Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.   
  7.    
  8. Oracle is a registered trademark of Oracle Corporation and/or its   
  9. affiliates. Other names may be trademarks of their respective   
  10. owners.   
  11.    
  12. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.   
  13.    
  14. mysql> select * from myorder where match('張');   
  15. +------+--------+------------+------------+-------------+----------------+   
  16. | id | weight | user_id | username | create_time | product_name |   
  17. +------+--------+------------+------------+-------------+----------------+   
  18. | 9 | 1304 | 1311895262 | 張三 | 1406823894 | tank is 坦克 |   
  19. | 10 | 1304 | 1311895263 | tank張二 | 1406823894 | tank is 坦克 |   
  20. | 11 | 1304 | 1311895264 | tank張一 | 1406823894 | tank is 坦克 |   
  21. | 12 | 1304 | 1311895265 | tank張 | 1406823894 | tank is 坦克 |   
  22. +------+--------+------------+------------+-------------+----------------+   
  23. rows in set (0.01 sec)   
  24.    
  25. mysql> select * from myorder where match('張三');   
  26. +------+--------+------------+----------+-------------+----------------+   
  27. | id | weight | user_id | username | create_time | product_name |   
  28. +------+--------+------------+----------+-------------+----------------+   
  29. | 9 | 2500 | 1311895262 | 張三 | 1406823894 | tank is 坦克 |   
  30. +------+--------+------------+----------+-------------+----------------+   
  31. 1 row in set (0.00 sec)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 佛山市| 青岛市| 手游| 邵东县| 广安市| 建湖县| 塔河县| 岫岩| 顺昌县| 云浮市| 东辽县| 罗甸县| 历史| 确山县| 图木舒克市| 镇雄县| 大宁县| 伊川县| 阜南县| 宁蒗| 特克斯县| 苗栗市| 库尔勒市| 增城市| 鄯善县| 额尔古纳市| 新干县| 筠连县| 淳化县| 新闻| 沂源县| 许昌市| 托克托县| 长乐市| 二连浩特市| 六枝特区| 沙湾县| 如皋市| 孙吴县| 永胜县| 五指山市|