網上有很多關于pos機服務器配置,在Ubuntu安裝和配置Sphinx的知識,也有很多人為大家解答關于pos機服務器配置的問題,今天pos機之家(www.tonybus.com)為大家整理了關于這方面的知識,讓我們一起來看下吧!
本文目錄一覽:
pos機服務器配置
Ubuntu系統默認是配置有sphinx的,先檢查一下,別多此一舉。。。。。
在開始本指南之前,您需要:
一個Ubuntu 16.04服務器。sudo的一個非root用戶,您可以通過以下設置本教程 。安裝在服務器上,你可以通過下面的第2步設置在mysql 本教程 。第1步 - 安裝Sphinx
在Ubuntu上安裝Sphinx很容易,因為它在本地軟件包存儲庫中。 使用安裝它apt-get 。不行可以運行apt-get update
sudo apt-get install sphinxsearch
現在您已經在服務器上成功安裝了Sphinx。 在啟動Sphinx守護進程之前,讓我們進行配置。
第2步 - 創建測試數據庫
接下來,我們將使用隨包提供的SQL文件中的示例數據設置數據庫。 這將允許我們測試Sphinx搜索以后工作。
讓我們將示例SQL文件導入數據庫。 首先,登錄到MySQL服務器shell。
mysql -u root -p
提示時輸入MySQL root用戶的密碼。 您提示將改變為mysql> 。
創建虛擬數據庫。 在這里,我們稱它為測試 ,但你可以將其命名為任何你想要的。
CREATE DATABASE test;
導入示例SQL文件。
SOURCE /etc/sphinxsearch/example.sql;
然后離開MySQL shell。
quit
現在你有一個數據庫填充樣本數據。 接下來,我們將定制Sphinx的配置。
第3步 - 配置Sphinx
Sphinx的配置應該是在一個名為sphinx.conf中/etc/sphinxsearch 。 配置包括那些運行必不可少的3個主要模塊: 索引 ,searchd的 ,和來源 。 我們將提供一個示例配置文件供您使用,并解釋每個部分,以便以后進行自定義。
首先,創建sphinx.conf文件。
sudo nano /etc/sphinxsearch/sphinx.conf
這些指數 ,searchd的 ,和源塊的描述如下。 然后,在這個步驟結束時,對全部sphinx.conf被包括為你復制并粘貼到文件中。
源塊包含源代碼,用戶名和密碼到MySQL服務器的類型。 所述的第一列sql_query應該是唯一的ID。 SQL查詢將在每個索引上運行,并將數據轉儲到Sphinx索引文件。 下面是每個字段和源塊本身的描述。
type :數據源索引的類型。 在我們的例子,這是MySQL。 其他支持的類型包括pgsql,mssql,xmlpipe2,odbc等。sql_host :主機名MySQL的主機。 在我們的例子,這是localhost 。 這可以是域或IP地址。sql_user :用戶名MySQL的登錄。 在我們的例子,這是根源 。sql_pass :密碼為MySQL用戶。 在我們的示例中,這是根MySQL用戶的密碼。sql_db :存儲數據的數據庫的名稱。 在我們的例子,這是考驗 。sql_query :查詢從數據庫到索引那轉儲數據。這是源塊:
sphinx.conf的源代碼塊
source src1{ type = mysql #SQL settings (for ‘mysql’ and ‘pgsql’ types) sql_host = localhost sql_user = root sql_pass = password sql_db = test sql_port = 3306 # optional, default is 3306 sql_query = \\ SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content \\ FROM documents sql_attr_uint = group_id sql_attr_timestamp = date_added}
索引組件包含源和存儲數據的路徑。
在
source :源塊的名稱。 在我們的例子,這是src1的 。path :路徑保存索引。sphinx.conf的索引塊
index test1{ source = src1 path = /var/lib/sphinxsearch/data/test1 docinfo = extern}
該searchd的組件包含端口和其他變量來運行Sphinx守護進程。
listen :這Sphinx守護進程運行的端口,后面的協議。 在我們的例子,這是9306:mysql41。 已知的協議是:Sphinx (SphinxAPI)和:mysql41(SphinxQL)query_log :路徑保存查詢日志。pid_file :到Sphinx守護進程的PID文件的路徑。seamless_rotate :同時旋轉海量數據預緩存的指標,防止searchd的攤位。preopen_indexes :是否強行盤前在啟動時的所有索引。unlink_old :是否刪除成功旋轉舊的索引拷貝。searchd塊的sphinx.conf
searchd{ listen = 9312:sphinx #SphinxAPI port listen = 9306:mysql41 #SphinxQL port log = /var/log/sphinxsearch/searchd.log query_log = /var/log/sphinxsearch/query.log read_timeout = 5 max_children = 30 pid_file = /var/run/sphinxsearch/searchd.pid seamless_rotate = 1 preopen_indexes = 1 unlink_old = 1 binlog_path = /var/lib/sphinxsearch/data}
復制和粘貼的完整配置如下。 你需要下面來改變它唯一的變量是sql_pass源塊,這是高亮顯示的變量。
完整的sphinx.conf文件
source src1{ type = mysql sql_host = localhost sql_user = root sql_pass = your_root_mysql_password sql_db = test sql_port = 3306 sql_query = \\ SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content \\ FROM documents sql_attr_uint = group_id sql_attr_timestamp = date_added}index test1{ source = src1 path = /var/lib/sphinxsearch/data/test1 docinfo = extern}searchd{ listen = 9306:mysql41 log = /var/log/sphinxsearch/searchd.log query_log = /var/log/sphinxsearch/query.log read_timeout = 5 max_children = 30 pid_file = /var/run/sphinxsearch/searchd.pid seamless_rotate = 1 preopen_indexes = 1 unlink_old = 1 binlog_path = /var/lib/sphinxsearch/data}
探索更多的配置,你可以看看在/etc/sphinxsearch/sphinx.conf.sample文件,里面有所有的變量在更詳細的解釋。
第4步 - 管理索引
在這一步中,我們將數據添加到Sphinx索引,并確保利用指數保持最新cron 。
首先,使用我們之前創建的配置將數據添加到索引。
sudo indexer --all
你應該得到類似下面的東西。
OutputSphinx 2.2.9-id64-release (rel22-r5006)Copyright (c) 2001-2015, Andrew AksyonoffCopyright (c) 2008-2015, Sphinx Technologies Inc (http://sphinxsearch.com)using config file \'/etc/sphinxsearch/sphinx.conf\'...indexing index \'test1\'...collected 4 docs, 0.0 MBsorted 0.0 Mhits, 100.0% donetotal 4 docs, 193 bytestotal 0.010 sec, 18552 bytes/sec, 384.50 docs/sectotal 4 reads, 0.000 sec, 0.1 kb/call avg, 0.0 msec/call avgtotal 12 writes, 0.000 sec, 0.1 kb/call avg, 0.0 msec/call avg
在生產環境中,有必要保持索引為最新。 為了做到這一點,讓我們創建一個cronjob。 首先,打開crontab。
crontab -e
可能會詢問您要使用哪個文本編輯器。 選擇你喜歡的; 在本教程中,我們使用nano 。
隨后的cronjob將每小時運行一次,并使用我們之前創建的配置文件向索引添加新數據。 將其復制并粘貼到文件末尾,然后保存并關閉文件。
crontab
@hourly /usr/bin/indexer --rotate --config /etc/sphinxsearch/sphinx.conf --all
現在Sphinx已經完全設置和配置,我們可以啟動服務并嘗試。
第5步 - 啟動Sphinx
默認情況下,Sphinx守護程序關閉。 首先,我們將改變這一行啟用START=no到START=yes中/etc/default/sphinxsearch 。
sudo sed -i \'s/START=no/START=yes/g\' /etc/default/sphinxsearch
然后,使用systemctl重啟Sphinx守護進程。
sudo systemctl restart sphinxsearch.service
要檢查Sphinx守護程序是否正確運行,請運行。
sudo systemctl status sphinxsearch.service
你應該得到類似下面的東西。
Output● sphinxsearch.service - LSB: Fast standalone full-text SQL search engine Loaded: loaded (/etc/init.d/sphinxsearch; bad; vendor preset: enabled) Active: active (running) since Tue 2016-07-26 01:50:00 EDT; 15s ago . . .
這也將確保Sphinx守護程序即使在服務器重新啟動時也啟動。
第6步 - 測試
現在,一切都設置好了,讓我們測試搜索功能。 使用MySQL接口連接到SphinxQL(在端口9306上)。 您提示將改變為mysql> 。
mysql -h0 -P9306
讓我們搜索一個句子。
SELECT * FROM test1 WHERE MATCH(\'test document\'); SHOW META;
你應該得到類似下面的東西。
Output+------+----------+------------+| id | group_id | date_added |+------+----------+------------+| 1 | 1 | 1465979047 || 2 | 1 | 1465979047 |+------+----------+------------+2 rows in set (0.00 sec)+---------------+----------+| Variable_name | Value |+---------------+----------+| total | 2 || total_found | 2 || time | 0.000 || keyword[0] | test || docs[0] | 3 || hits[0] | 5 || keyword[1] | document || docs[1] | 2 || hits[1] | 2 |+---------------+----------+9 rows in set (0.00 sec)
在上述結果可以看出,Sphinx發現從我們的2場比賽test1索引我們的測試句子。 該SHOW META;命令顯示以及在句子中每個關鍵字的點擊。
讓我們搜索一些關鍵字。
CALL KEYWORDS (\'test one three\', \'test1\', 1);
你應該得到類似下面的東西。
Output+------+-----------+------------+------+------+| qpos | tokenized | normalized | docs | hits |+------+-----------+------------+------+------+| 1 | test | test | 3 | 5 || 2 | one | one | 1 | 2 || 3 | three | three | 0 | 0 |+------+-----------+------------+------+------+3 rows in set (0.00 sec)
在結果上面可以看到,在test1的指數,Sphinx發現:
5個匹配在3個文檔中的關鍵字\'test\'2在1個文檔中匹配關鍵字“1”0匹配0個文檔中的關鍵字\'three\'現在你可以離開MySQL shell了。
quit
結論
在本教程中,我們向您展示了如何安裝Sphinx,并使用SphinxQL和MySQL進行簡單搜索。
您還可以找到官方對于PHP,Perl,Python和Ruby和Java本地SphinxAPI實現 。 如果你正在使用的NodeJS,你也可以使用該SphinxAPI包 。
通過使用Sphinx,您可以輕松地添加自定義搜索到您的網站。 有關使用Sphinx的更多信息,請訪問該項目的網站 。
以上就是關于pos機服務器配置,在Ubuntu安裝和配置Sphinx的知識,后面我們會繼續為大家整理關于pos機服務器配置的知識,希望能夠幫助到大家!
