Задать вопрос
@bichara2002

Как заставить sphinxsearch 3.6.1 выводить несколько полей?

Файл конфигурации выглядит так:

common
{
    datadir     = ./sphinxdata
}

source prezumciya_source
{
    type            = mysql
    sql_host        = localhost
    sql_user        = root
    sql_pass        = 
    sql_db          = wp
    sql_port        = 3306

    sql_query       = SELECT ID AS id, post_title AS title, post_content AS content FROM wp_posts WHERE 
    post_status = 'publish' AND post_type = 'post'
}

index prezumciya_index
{
    source          = prezumciya_source
    field     = title,content
}

searchd
{
    listen          = 9312
    log             = C:/s/log/searchd.log
    query_log       = C:/s/log/query.log
    read_timeout    = 5
    max_children    = 30
    pid_file        = C:/s/log/searchd.pid
    seamless_rotate = 1
    preopen_indexes = 1
    unlink_old      = 1
    binlog_path     = C:/s/data
}

После индексирования и запуска, поиск выглядит так:

$sql = "SELECT * FROM prezumciya_index WHERE MATCH($query) LIMIT 1000";

Поиск выводит только ID, как сделать, чтобы выводил еще title и content?
  • Вопрос задан
  • 70 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 1
@bichara2002 Автор вопроса
в индексе прописать stored_fields и поля которые должны выводиться
https://sphinxsearch.com/docs/sphinx3.html#using-d...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
grantur5707
@grantur5707
Full Stack Web Developer
Дело в том, что в Sphinx по умолчанию при запросе SphinxQL возвращаются только id и поля, указанные в индексе. Для вывода конкретных полей нужно указать их в запросе явным образом:

$sql = "SELECT id, title, content FROM prezumciya_index WHERE MATCH('$query') LIMIT 1000";
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы