2016-09-23 1 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):

не позволили местным индексы для поиска.

И индексы mysql прекрасно работают, если я использую их с портами 9301 и 9302 соответственно. Но поиск в распределенном индексе ничего не возвращает.

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? Вы указываете имя индекса (test) или просто используете значение по умолчанию ('*')? – aditirex

+0

@aditirex Спасибо, ваш вопрос помог мне! – mnv

ответ

1

0 индексов заранее сохраняется в кэше в 0,000 сек

Ну что это я, это нормально. Для «precache» нет локальных индексов. Распределенный индекс не имеет индексных файлов для загрузки или кеширования.

... но searchd все равно должен работать в конце этого. Я думаю, что searchd должен начать нормально.

Попробуйте также: /var/log/sphinxsearch/searchd00.log может иметь еще несколько.

Хотя я полагаю, что его возможный сфинкс не будет запускаться без каких-либо реальных индексов (т. Е. Не может иметь JUST распределенный индекс), поэтому он может просто добавить поддельный индекс в этот конфиг.

+0

Благодарим вас за идею. Я попробовал это. И нашел, какая проблема была с тем, как я запрашиваю данные. – mnv

Смежные вопросы