Думающий сфинкс возвращает плохие результаты (пропало много документов) - PullRequest
0 голосов
/ 27 июля 2010

Я разрабатываю приложение Ruby on Rails, которое использует Thinking Sphinx.К сожалению, время от времени (несколько раз в месяц) поиск имеет тенденцию давать плохие результаты (многие документы отсутствуют).Реиндексация помогает, но это не решение для производства.

Я получаю плохие результаты, даже когда я печатаю простые запросы в консоль rails (например, ThinkingSphinx.search 'skalee').Инструмент Sphinx search возвращает правильные результаты, поэтому индексирование, по-видимому, работает правильно.

Когда я набираю ThinkingSphinx.search('skalee').results[:words], я вижу правильное количество совпадений (например, термин найден в 30 документах), но ThinkingSphinx.search('skalee').results[:matches] содержит,скажем, 2 документа.Числа в results[:words] равны тем, которые я получаю с search.

Я использую задержанную дельту, но эта проблема появляется, даже когда я не запускаю ts: dd.

Ответы [ 2 ]

0 голосов
/ 06 ноября 2010

Thinking Sphinx (или Delayed Delta, я не очень хорошо помню) добавляет специальный внутренний атрибут (sphinx_deleted или что-то вроде этого) ко всем моделям. Он используется для фильтрации уничтоженных записей. К сожалению, время от времени это плохо работает. После модификации гема (избавления от этого атрибута) все работает нормально. Конечно, мне нужно подождать до полной переиндексации (которую я выполняю каждую ночь), чтобы удалить уничтоженные записи из индексов, но в моем случае это незначительный недостаток. В качестве альтернативы, я мог бы использовать функцию списка уничтожений Sphinx, чтобы отфильтровать удаленные записи.

0 голосов
/ 18 октября 2010

Просто случайно наткнулся на это:

http://freelancing -god.github.com / ts / en / common_issues.html # deltas

Возможно, ваши права доступа отключены?

...