Антон поделится опытом, как быстро и просто сделать автокомплит, достать красивый контекст найденного слова после поиска (excerpts) и очистить тексты от разметки (HTML, LaTeX).
SphinxSearch meetup #2 @ Avito, 18.06.2016
10. def search_options
{
indices: ['theme_full_core'],
select: "*, (IN(grade_ids, #{ grade_id }) OR NOT any_grade_ids) AS grade_match",
with: { grade_match: true },
}
end
…
join grades
has theme_grades.grade.id, as: :grade_ids
has "COUNT(DISTINCT theme_grades.id) > 0", as: :any_grade_ids, type: :boolean
Искать темы определенного класса
11. АВТОКОМПЛИТ
• Должен дополнять хорошие слова
• Не должен дополнять нехорошие слова
• Должен предлагать в первую очередь чаще
встречающиеся слова
12. Формирование частотного словаря
$ indexer myindex --buildstops keywords.txt 20000 --buildfreqs
…
имеет 550
называется 544
через 537
права 523
поэтому 520
…
13. Поиск для автокомплита
ThinkingSphinx::Index.define :keyword, name: 'keyword', with: :active_record do
indexes :word, sortable: true
indexes :frequency, sortable: true
end
…
@themes = Theme.full_text_search(escaped_query, search_options)
convert_keywords_to_responses
22. Правки
Добавить цифры и статистику
Упростить инфу про
Уточнить сравнение с эластиком
Переименовать улучшаем релевантность
Добавить слайд с выгрузкой слов для автокомплита
Добавить инфу про и
Добавить шуток
Добавить инфу про автокомплит по фразам