вопрос по Sphinx, данные в индексе эпизодически перестают находится.

Темы, не касающиеся фреймворка, но относящиеся к программированию в целом.
Закрыто
Аватара пользователя
mika_di
Сообщения: 218
Зарегистрирован: 2015.09.24, 11:57

вопрос по Sphinx, данные в индексе эпизодически перестают находится.

Сообщение mika_di »

Здравствуйте.
Помогите, пожалуйста, разобраться с ситуацией. В базе есть 300тыс+ записей и они вроде как все в индексе. Но эпизодически (никакой периодичности отследить не могу) данные перестают находиться по определенным словам. Переиндексация не помогает, данные просто то ищатся то нет.
Например:
Название товара - 6869 Panzerkampfwagen VI(P) / Bergepanzer Tiger(P) - (2 in 1)
находится по словам
6869
Panzerkampfwagen
Bergepanzer
er Tiger
fwagen VI


По Tiger отказывается находить. Но бывают менты когда находит по Tiger но другой товар где то же это слово присутствует, кодировки и языки одинаковые промерял по хешу md5. И в базе запись есть проверял по LIKE

Подскажите, что это может быть?
конфиг

Код: Выделить всё

source src1
{
  type          = mysql

  sql_host      = localhost
  sql_user      = sphinx_user
  sql_pass      = ****
  sql_db        = links
  sql_port      = 3306
  #sql_query_pre = SET NAMES utf8
  sql_query_pre = SET CHARACTER SET utf8
  #sql_query     = SELECT * FROM links 
  sql_query     = SELECT l.idlinks,l.title as title, l.search_string as search_string, l.brand as brand, ul.text_request as text_request, art FROM links l LEFT JOIN users_request ul ON ul.url = l.url;

  sql_field_string        = title
  sql_field_string        = brand
  sql_field_string        = art
  sql_field_string        = search_string
  sql_field_string        = text_request
  #sql_attr_timestamp    = date_create
}

index test
{
  source            = src1
  morphology = stem_ru, stem_en
  path              =  /var/lib/sphinx/test
  docinfo           = extern
  #charset_type      = utf-8
  wordforms = /var/python_script/model-lavka.ru/wordforms.txt
  stopwords = /var/python_script/model-lavka.ru/stopwords.txt
  charset_table     =  0..9, A..Z->a..z, _, -, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F, U+401->U+451, U+451, U+2D
  dict = keywords
  index_exact_words = 1
  min_word_len      = 1
  min_infix_len = 	2
  expand_keywords = 1 
  html_strip        = 1
}

searchd
{
  listen                  = 127.0.0.1:9312
  listen            = 9306:mysql41
  log               = /var/log/sphinx/searchd.log
  query_log         = /var/log/sphinx/query.log
  read_timeout      = 5
  max_children      = 30
  pid_file          = /var/run/sphinx/searchd.pid
  seamless_rotate   = 1
  preopen_indexes   = 1
  unlink_old        = 1
  binlog_path       = /var/lib/sphinx/
}
запрос выглядит так

Код: Выделить всё

SELECT * FROM test WHERE  match('(@title "Tiger" ~ 8)|(@title "Tiger"/4)|(@art "Tiger")') OPTION max_matches = 10000 
Последний раз редактировалось mika_di 2020.04.29, 11:50, всего редактировалось 1 раз.

Аватара пользователя
mika_di
Сообщения: 218
Зарегистрирован: 2015.09.24, 11:57

Re: вопрос по Sphinx, данные в индексе эпизодически перестают находится.

Сообщение mika_di »

Стало ясно , что дело не в сфинксе, а в строках которые он идексирует, но я так и не понял почему, по слову Tiger
6557 Немецкий танк Pz.Kpfw.VI Tiger Ausf.E Ранняя версия - находится нормально по
а 6800 Танк Wittmann's Last Tiger не находит

Закрыто