2013-02-20 3 views
0

Я создаю полнотекстовую поисковую систему, которая возвращает результаты для фраз.SPHINX Match Фразы и SPHINX Автоматическое индексирование в PHP

(a) Я пытаюсь совместить фразы только с использованием SPH_MATCH_PHRASE в SPHINX с использованием PHP. Проблема в том, что при поиске, например. «Это фраза», она также дает соответствующие результаты для «Это фраза» и «фраза» и «Это» и «Это» и «фраза» и т. Д. Есть ли способ ограничить результаты ТОЛЬКО полная фраза?

Что я пробовал: Я искал S/O и нашел How to query Sphinx for an exact matching phrase?, что предполагает размещение поискового запроса в кавычках. Я попробовал, но это вернуло нулевые результаты поиска при добавлении к условиям поиска.

(b) Это мой первый опыт использования SPHINX, и у меня мало опыта работы с Linux, но мне удалось запустить его на Linux VPS. Я начал службу индексатора, но я не знаю, как сделать его автоматически индексировать автоматически с интервалом. Является ли это конфигурацией SPHINX или командой Linux?

Что я пробовал: Я искал S/O для (b) выше и нашел это, но для Ruby on Rails thinking sphinx automatic indexing так мне это не помогло.

Благодаря

ответ

1

который предлагает размещение поискового запроса в кавычках.

Да. Thats для использования в режиме расширенного соответствия. SPH_MATCH_EXTENDED

в php Убедитесь, что вы используете $ cl-> setMatchMode() правильно.

Я не знаю, как это сделать, чтобы он автоматически индексировал все с интервалом.

Cron. Вы настраиваете задание crontab для вызова программы индексатора в любой момент, подходящий для вашей ситуации.

+0

Спасибо, Барри. Но проблема в том, что мы не хотим, чтобы пользователи вставляли кавычки в свой запрос. Я попытался добавить котировки в код, а затем использовал SPH_MATCH_EXTENDED, но я не получил результатов. Я попробую снова. Что касается задания Crontab, я настроил индексатор в приглашении Linux, поэтому я не уверен, как сделать CRON в командной строке Linux ... но с несколькими подсказками от вас мне повезло. – Cogicero

+0

Если вы не хотите делать это самостоятельно, используйте SPH_MATCH_PHRASE, но вставляйте кавычки, все сфинкс делает под капотом, когда вы используете SPH_MATCH_PHRASE. Все активировано в режиме EXTENDED :) – barryhunter

+0

http://google.com/search?q=cron+indexer+sphinx – barryhunter

0

Многие ссылки и подсказки Baryhunter в принятом ответе выше оказались полезными. Для меня это сделала Индексирующая часть, если кому-то это понадобится позже.

/usr/local/sphinx/bin/indexer --config /usr/local/sphinx/etc/sphinx.conf && /usr/local/sphinx/bin/searchd --rotate --config /usr/local/sphinx/etc/sphinx.conf 
+1

То тоже неправильно. Переключатель -rotate переходит в индекс. Не нужно вызывать searchd на всех '/ usr/local/sphinx/bin/indexer --config /usr/local/sphinx/etc/sphinx.conf --rotate index_names_here' – barryhunter

+0

О, wow * _ * Вздох не хватает прозрачных документов. Еще раз спасибо Барри. – Cogicero

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