Как получить 64-битные идентификаторы для работы с поисковым сервером Sphinx 0.9.9 в Mac OS? - PullRequest
0 голосов
/ 10 февраля 2011

Некоторое время я успешно использовал Sphinx, но просто столкнулся с проблемой, которая запутала меня ... Я поддержал Sphinx запросами mysql и недавно перенес свою стратегию первичного ключа таким образом, что у меня были идентификаторы таблицЯ увеличиваю индекс до 32 бит (в MYSQL они bigint без знака).Сфинкс получал индексные попадания, но возвращал мне бессмысленные идентификаторы (предположительно, 32 бита идентификатора, возвращенного запросами или что-то в этом роде) ..

Я посмотрел на это и понял, что не прошел --enable-Флаг id64 для ./configure.Нет проблем, полностью перестроил сфинкса с этим флагом (кстати, у меня 0.9.9).Без изменений, хотя!Я все еще испытываю ту же проблему.Мой тестовый сценарий довольно прост:

MySQL :

create table test_sphinx(id bigint unsigned primary key, text varchar(200));
insert into test_sphinx values (10102374447, 'Girls Love Justin Beiber');
insert into test_sphinx values (500, 'But Small Ids are working?');

Sphinx conf:

source new_proof
{
type                = mysql
sql_host            = 127.0.0.1
sql_user            = root
sql_pass            = password
sql_db              = testdb
sql_port            = 
sql_query_pre       =
sql_query_post      =
sql_query           = SELECT id, text FROM test_sphinx
sql_query_info      = SELECT * FROM `test_sphinx` WHERE `id` = $id
sql_attr_bigint     = id
}

index new_proof
{
source          = new_proof
path            = /usr/local/sphinx/var/data/new_proof
docinfo         = extern
morphology      = none
stopwords       =
min_word_len    = 1
charset_type    = utf-8
enable_star     = 1
min_prefix_len  = 0
min_infix_len   = 2
}

Поиск:

→ search -i new_proof beiber
Sphinx 0.9.9-release (r2117)
...
index 'new_proof': query 'beiber ': returned 1 matches of 1 total in 0.000 sec

displaying matches:
1. document=1512439855, weight=1
(document not found in db)

words:
1. 'beiber': 1 documents, 1 hits

→ search -i new_proof small
Sphinx 0.9.9-release (r2117)
...
index 'new_proof': query 'small ': returned 1 matches of 1 total in 0.000 sec

displaying matches:
1. document=500, weight=1
id=500
text=But Small Ids are working?

words:
1. 'small': 1 documents, 1 hits

У кого-нибудь есть представление о том, почему это не работает?

Заранее спасибо -Phill

РЕДАКТИРОВАТЬ

Ах.Ладно, получил дальше.Я не упомянул, что проводил все эти тесты на Mac OS.Похоже, это может быть моей проблемой.Я только что скомпилировал в 64-битной версии под Linux, и он отлично работает .. Есть также подсказка, когда я запускаю команды командной строки Sphinx, которые не принимала компиляция:

Мой Mac (не работает)

Sphinx 0.9.9-release (r2117)

Linux box (работает)

Sphinx 0.9.9-id64-release (r2117)

Итак, я предполагаю, что новый вопрос заключается в том, каков трюк для компиляции 64-битных ключей на Mac OS?

1 Ответ

0 голосов
/ 10 февраля 2011

Вы перестроили индекс с помощью 64-битного индексатора?

...