Sphinx находит не все посты и записи блогов (3.4.6) - Страница 2 - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

Правила раздела

Здесь обсуждаются вопросы по настройке и администрированию форумов IPB 3.x.
Пожалуйста, не оффтопьте, если зашли сюда случайно, и обратите внимание на соседние разделы.
Установка, настройка и обслуживание форумов IPB 2.x.
Оформление форумов, включая верстку скинов.
Размещение рекламы на форумах.
SEO оптимизация форума.
Техническая поддержка наших скинов и модов.

СвернутьПрикрепленные теги

настройка поиска

  • 2 Страниц +
  • 1
  • 2

Sphinx находит не все посты и записи блогов (3.4.6)

#16 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 721
  • Регистрация: 20-Март 09
  • Репутация: 2 269
  • IPB version:3.1.x
 

Отправлено 08 Сентябрь 2014 - 07:36

Для начала выяснить если блоги вообще поддерживают поиск по сфинксу.
0

#17 Пользователь не на сайте   Mac ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 43
  • Регистрация: 15-Июнь 14
  • Репутация: 1
  • IPB version:3.4.x
 

Отправлено 08 Сентябрь 2014 - 14:21

Да вроде поддерживают:
################################# --- BLOG --- ##############################

source ipb_blog_search_main : ipb_ipb_source_config
{
    # Set our forum PID counter
    sql_query_pre   = REPLACE INTO ipb_cache_store VALUES( 'sphinx_blog_counter', (SELECT max(entry_id) FROM ipb_blog_entries), 0, UNIX_TIMESTAMP(), 0 )
    
    # Query posts for the main source
    sql_query       = SELECT e.entry_id, e.entry_id as search_id, e.entry_name, e.entry_name as tordinal, e.entry, e.entry_date, e.entry_author_id, e.entry_num_comments, e.blog_id, \
                             b.blog_owner_only, b.blog_private, b.blog_disabled, \
                            CASE WHEN e.entry_status='published' THEN 0 ELSE e.entry_author_id END AS entry_not_published, \
                            CASE WHEN b.blog_owner_only=0 THEN 0 ELSE b.member_id END AS blog_owner_id, \
                            CASE WHEN b.blog_authorized_users IS NULL THEN 0 ELSE 1 END AS authorized_users \
                        FROM ipb_blog_entries e \
                      LEFT JOIN ipb_blog_blogs b ON ( b.blog_id=e.blog_id )
    
    # Fields    
    sql_attr_uint           = search_id
    sql_attr_uint           = blog_owner_only
    sql_attr_timestamp      = entry_date
    sql_attr_string         = tordinal
    sql_attr_uint           = entry_author_id
    sql_attr_uint           = entry_num_comments
    sql_attr_uint           = blog_id
    sql_attr_uint           = blog_private
    sql_attr_uint           = blog_disabled
    sql_attr_uint           = entry_not_published
    sql_attr_uint           = blog_owner_id
    sql_attr_uint           = authorized_users
    sql_attr_multi          = uint tag_id from query; SELECT tag_meta_id, tag_id FROM ipb_core_tags WHERE tag_meta_app='blog' AND tag_meta_area='entries'
    sql_ranged_throttle = 0
}

source ipb_blog_search_delta : ipb_blog_search_main
{
    # Override the base sql_query_pre
    sql_query_pre = 
    
    # Query posts for the delta source
    sql_query       = SELECT e.entry_id, e.entry_id as search_id, e.entry_name, e.entry_name as tordinal, e.entry, e.entry_date, e.entry_author_id, e.entry_num_comments, e.blog_id, b.blog_owner_only, b.blog_private, b.blog_disabled, \
                            CASE WHEN e.entry_status='published' THEN 0 ELSE e.entry_author_id END AS entry_not_published, \
                            CASE WHEN b.blog_owner_only=0 THEN 0 ELSE b.member_id END as blog_owner_id, \
                            CASE WHEN b.blog_authorized_users IS NULL THEN 0 ELSE 1 END AS authorized_users \
                        FROM ipb_blog_entries e \
                      LEFT JOIN ipb_blog_blogs b ON ( b.blog_id=e.blog_id ) \
                      WHERE e.entry_id > ( SELECT cs_value FROM ipb_cache_store WHERE cs_key='sphinx_blog_counter' )    
}

index ipb_blog_search_main
{
    source          = ipb_blog_search_main
    path            = /var/lib/sphinx/mysite_ipb/ipb_blog_search_main
    
    docinfo         = extern
    mlock           = 0
    morphology      = none
    min_word_len    = 2
    charset_type    = utf-8
    html_strip      = 0
    #infix_fields    = entry_name, entry
    #min_infix_len   = 3
    #enable_star     = 1
}

index ipb_blog_search_delta : ipb_blog_search_main
{
   source           = ipb_blog_search_delta
   path             = /var/lib/sphinx/mysite_ipb/ipb_blog_search_delta
}

source ipb_blog_comments_main : ipb_ipb_source_config
{
    # Set our forum PID counter
    sql_query_pre   = REPLACE INTO ipb_cache_store VALUES( 'sphinx_blog_comments_counter', (SELECT max(comment_id) FROM ipb_blog_comments), 0, UNIX_TIMESTAMP(), 0 )
    
    # Query posts for the main source
    sql_query       = SELECT c.comment_id, c.comment_id as search_id, c.member_id as comment_member_id, c.comment_date, c.comment_approved, c.comment_text, \
                             e.entry_id, e.entry_name as tordinal, e.entry_date, e.entry_author_id, e.entry_num_comments, e.blog_id, \
                             b.blog_owner_only, b.blog_private, b.blog_disabled, \
                            CASE WHEN e.entry_status='published' THEN 0 ELSE e.entry_author_id END AS entry_not_published, \
                            CASE WHEN b.blog_owner_only=0 THEN 0 ELSE b.member_id END AS blog_owner_id, \
                            CASE WHEN b.blog_authorized_users IS NULL THEN 0 ELSE 1 END AS authorized_users, \
                            CONCAT(e.entry_last_comment_date, '.', e.entry_id ) as last_post_group \
                        FROM ipb_blog_comments c \
                      LEFT JOIN ipb_blog_entries e ON ( c.entry_id=e.entry_id ) \
                      LEFT JOIN ipb_blog_blogs b ON ( b.blog_id=e.blog_id )
    
    # Fields    
    sql_attr_uint           = search_id
    sql_attr_uint           = entry_id
    sql_attr_uint           = blog_owner_only
    sql_attr_timestamp      = entry_date
    sql_attr_string         = tordinal
    sql_attr_uint           = entry_author_id
    sql_attr_uint           = entry_num_comments
    sql_attr_uint           = blog_id
    sql_attr_uint           = blog_private
    sql_attr_uint           = blog_disabled
    sql_attr_uint           = entry_not_published
    sql_attr_uint           = blog_owner_id
    sql_attr_uint           = authorized_users
    sql_attr_uint           = last_post_group
    sql_attr_timestamp      = comment_date
    sql_attr_uint           = comment_member_id
    sql_attr_uint           = comment_approved
    sql_ranged_throttle = 0
}

source ipb_blog_comments_delta : ipb_blog_comments_main
{
    # Override the base sql_query_pre
    sql_query_pre = 
    
    # Query posts for the delta source
    sql_query       = SELECT c.comment_id, c.comment_id as search_id, c.member_id as comment_member_id, c.comment_date, c.comment_approved, c.comment_text, \
                             e.entry_id, e.entry_name as tordinal, e.entry_date, e.entry_author_id, e.entry_num_comments, e.blog_id, \
                             b.blog_owner_only, b.blog_private, b.blog_disabled, \
                            CASE WHEN e.entry_status='published' THEN 0 ELSE e.entry_author_id END AS entry_not_published, \
                            CASE WHEN b.blog_owner_only=0 THEN 0 ELSE b.member_id END AS blog_owner_id, \
                            CASE WHEN b.blog_authorized_users IS NULL THEN 0 ELSE 1 END AS authorized_users, \
                            CONCAT(e.entry_last_comment_date, '.', e.entry_id ) as last_post_group \
                        FROM ipb_blog_comments c \
                      LEFT JOIN ipb_blog_entries e ON ( c.entry_id=e.entry_id ) \
                      LEFT JOIN ipb_blog_blogs b ON ( b.blog_id=e.blog_id ) \
                      WHERE c.comment_id <= ( SELECT cs_value FROM ipb_cache_store WHERE cs_key='sphinx_blog_comments_counter' )    
}

index ipb_blog_comments_main
{
    source          = ipb_blog_comments_main
    path            = /var/lib/sphinx/mysite_ipb/ipb_blog_comments_main
    
    docinfo         = extern
    mlock           = 0
    morphology      = none
    min_word_len    = 2
    charset_type    = utf-8
    html_strip      = 0
    #infix_fields    = comment_text
    #min_infix_len   = 3
    #enable_star     = 1
}

index ipb_blog_comments_delta : ipb_blog_comments_main
{
   source           = ipb_blog_comments_delta
   path             = /var/lib/sphinx/mysite_ipb/ipb_blog_comments_delta
}

0

#18 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 721
  • Регистрация: 20-Март 09
  • Репутация: 2 269
  • IPB version:3.1.x
 

Отправлено 08 Сентябрь 2014 - 19:25

Тогда должен работать.
0

#19 Пользователь не на сайте   Mac ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 43
  • Регистрация: 15-Июнь 14
  • Репутация: 1
  • IPB version:3.4.x
 

Отправлено 12 Сентябрь 2014 - 05:03

Как я и подозревал, это был баг. Добил ТП, исправили. Всем, у кого стоит сфинкс, советую внести этот багфикс.

А вам, siv1987, большое человеческое спасибо за участие! А то в других сообществах IPB просто глухая стена.

Сообщение изменено: Mac (12 Сентябрь 2014 - 05:04)

0

#20 Пользователь на сайте   Haktar ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 629
  • Регистрация: 14-Июнь 09
  • Репутация: 15
  • IPB version:3.1.x
 

Отправлено 01 Октябрь 2014 - 18:17

Поиск Сфинкс конечно отличный - ищет мгновенно.

Однако не решил проблему как у автора топика - максимальное кол-во страниц 40, как не меняй разные параметры в файлах :(

И ещё. Индексация всего контента раз в сутки (не нового, новый контент индексируеться каждые десять минут за микросекунды) занимает почти две минуты, и всё время это форум простаивает. Можно ли как то оптимизировать индексацию?
0

Сообщить об этой теме:


  • 2 Страниц +
  • 1
  • 2


Быстрый ответ

  

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2016 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна