2016-09-23 28 views
0

我有兩個簡單的指標:簡單的分佈式索引:預緩存0指數

首先,01.conf

searchd 
{ 
    listen  = 9301 
    listen  = 9401:mysql41 
    pid_file = /var/run/sphinxsearch/searchd01.pid 
    log   = /var/log/sphinxsearch/searchd01.log 
    query_log = /var/log/sphinxsearch/query01.log 
    binlog_path = /var/lib/sphinxsearch/data/test/01 
} 

source base 
{ 
    type  = mysql 
    sql_host = localhost 
    sql_db = test 
    sql_user = root 
    sql_pass = toor 
    sql_query_pre = SET NAMES utf8 
    sql_attr_uint = group_id 
} 

source test : base 
{ 
    sql_query    = \ 
       SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content \ 
       FROM documents WHERE id % 2 = 0 
} 

index test 
{ 
    source = test 
    path = /var/lib/sphinxsearch/data/test/01 
} 

二看起來像第一,但與 「02」 改爲 「01」,在文件名和裏面。

而且在00.conf分佈式索引:

searchd 
{ 
    listen  = 9305 
    listen  = 9405:mysql41 
    pid_file = /var/run/sphinxsearch/searchd00.pid 
    log   = /var/log/sphinxsearch/searchd00.log 
    query_log = /var/log/sphinxsearch/query00.log 
    binlog_path = /var/lib/sphinxsearch/data/test 
} 

index test 
{ 
    type = distributed 
    agent = 127.0.0.1:9301:test 
    agent = 127.0.0.1:9302:test 
} 

我嘗試使用分佈式索引:

sudo searchd --config /etc/sphinxsearch/d/00.conf --stop 
sudo searchd --config /etc/sphinxsearch/d/01.conf --stop 
sudo searchd --config /etc/sphinxsearch/d/02.conf --stop 

sudo searchd --config /etc/sphinxsearch/d/01.conf 
sudo searchd --config /etc/sphinxsearch/d/02.conf 

sudo indexer --all --rotate --config /etc/sphinxsearch/d/01.conf 
sudo indexer --all --rotate --config /etc/sphinxsearch/d/02.conf 

sudo searchd --config /etc/sphinxsearch/d/00.conf 

不幸的是我得到一個輸出:

... 
using config file '/etc/sphinxsearch/d/00.conf'... 
listening on all interfaces, port=9305 
listening on all interfaces, port=9405 
precached 0 indexes in 0.000 sec 

爲什麼?

當我試圖尋找與分佈式索引(9305)的東西:

沒有啓用本地索引進行搜索。

如果我分別將它們與端口9301和9302一起使用,mysql索引是完美的。但是在分佈式索引中搜索沒有任何回報

UPDATE

# tail /var/log/sphinxsearch/searchd00.log 
[Thu Sep 29 23:43:04.599 2016] [ 2353] binlog: finished replaying /var/lib/sphinxsearch/data/test/binlog.001; 0.0 MB in 0.000 sec 
[Thu Sep 29 23:43:04.599 2016] [ 2353] binlog: finished replaying total 4 in 0.000 sec 
[Thu Sep 29 23:43:04.599 2016] [ 2353] accepting connections 
[Thu Sep 29 23:43:24.336 2016] [ 2353] caught SIGTERM, shutting down 
[Thu Sep 29 23:43:24.472 2016] [ 2353] shutdown complete 
[Thu Sep 29 23:43:24.473 2016] [ 2352] watchdog: main process 2353 exited cleanly (exit code 0), shutting down 
[Thu Sep 29 23:43:24.634 2016] [ 2404] watchdog: main process 2405 forked ok 
[Thu Sep 29 23:43:24.635 2016] [ 2405] listening on all interfaces, port=9305 
[Thu Sep 29 23:43:24.635 2016] [ 2405] listening on all interfaces, port=9405 
[Thu Sep 29 23:43:24.636 2016] [ 2405] accepting connections 

UPDATE2

嗯......好像有什麼問題,從獅身人面像查詢數據。我還將分佈式索引更名爲test1。下一個代碼運行良好。

# mysql -h 127.0.0.1 -P 9405 
mysql> select * from test1 where match ('one|two'); 
+------+----------+ 
| id | group_id | 
+------+----------+ 
| 1 |  1 | 
| 2 |  1 | 
+------+----------+ 
2 rows in set (0,00 sec) 

我覺得在舊版本的sphinxapi.php中我用了什麼問題。

+1

您究竟如何進行搜索? API?你是指定索引名稱(測試)還是隻執行默認('*')? – aditirex

+0

@aditirex謝謝,你的問題幫助我! – mnv

回答

1

在0.000秒預緩存0指數

好,它的自我,是正常的。沒有本地索引來「預緩存」。分佈式索引沒有索引文件來「加載」或(預)緩存。

...但是searchd仍然應該在最後運行。我認爲searchd應該可以啓動。

也試着檢查 /var/log/sphinxsearch/searchd00.log 可能有更多。

雖然我認爲它的可能的獅身人面像不會沒有任何真正的索引(即不能啓動JUST分佈式索引),所以可以添加一個虛假索引到該配置。

+0

謝謝你的想法。我試過了。並發現我如何查詢數據有什麼問題。 – mnv