Улучшить возможности поиска

Avatar
  • обновлен
  • Завершен
1. по точному вхождению

2. в различных падежах/временах

3. синонимы

4. Реал-тайм поиск (при задержке в 0,5 сек - запрос по текущему вводу)

5. Suggestions - сократит количество повторов и ошибок в написании

6. В приоритете искать по заголовку, потом по описанию, потом по комментам (комменты наполняют идею кейвордами, что облегчает поиск)
Прикрепленные ответы
Avatar
Vladimir Mullagaliyev co-founder
  • Ответ
  • Завершен
Здравствуйте.
В данный момент поиск выполняется следующим образом:

Индексация:
Индексируются тексты с заголовка и описания фидбэка, слова нормализуются стеммером (набором правил формообразования слов, для каждого языка свой).

Поиск:
Строка поиска разбивается на слова, слова нормализуются стеммером. Выполняется поиск индексов слов по полному совпадению нормализованного слова. Выбираются все фидбаки, где встретилось хотя бы 1 слово (максимум 10 фидбаков) и вверх поднимаются те, где совпадение слов больше.

Что планируем поэкспериментировать:
Попробовать поиск индексов слов по части слова (неполное совпадение).

Остальное давайте обсуждать в комментах.
Avatar
Anton Volkov
Честно говоря, не силён в поисковых системах. Возможно стоит покопать статьи/доклады на эту тему.

По логике вроде как да, заголовок важнее, но не очень сильно, примерно в 1.5 раза :)

По приоритету словоформ:
1. В чистом виде введённое слово
2. Словоформы от введённого слова (множественное число, падежи и т.п.)
3. Включение слова в другие

Сейчас ещё ситуацию усугубляет наличие только 10 результатов, но на эту тему есть отдельный отзыв.
Avatar
Vladimir Mullagaliyev co-founder
Тоже попробовал :) Действительно, все что угодно.
Но это связано с тем, что сейчас поиск по части слова. И, получается, находит все слова, начинающиеся на "вес".

Думаю нам надо сейчас заняться приоритетом слов по его нахождению в тексте. Т.е. слово в хеадере важнее слова в описании. Но в реале это не поможет с данной конкретной ситуацией. У кого какие предложения по решению конкретной ситуации? Может попробуем, если есть слово "вес", то ищем его, если нет, то все слова, начинающиеся на "вес"? Надо экспериментировать.
Avatar
Anton Volkov
Предлагаю улучшение поиска поставить в приоритет, т.к. большая часть того чем мы последнее время занимались - это борьба с последствиями ненайденных дублей. Давайте лечить причину.

Разбираю я дубли, речь зашла о весе танков.
Пишу в поиске "Вес". Вместо того чтобы получить отзыв "Вес танков", я получаю всё что угодно, но не его. Не удивительно, что другие наплодили дублей.
Avatar
Sergey Stukov co-founder
Следущим шагом доберемся и до учета рейтинга фидбака в поиске. Спасибо за замечание :)
Avatar
Anton Volkov
Спасибо!
Всё ещё странная логика сортировки результатов поиска.
Например, введите "режим" в Танках.
На первом месте заминусованная идея.
Avatar
Vladimir Mullagaliyev co-founder
Добавили поиск по части слова. Пример "автоза" в Вашем форуме. Будем думать как еще улучшить.
Avatar
Anton Volkov
По-идее, надо бы количество голосов как-то в эту формулу внести.
Т.к. с точки зрения полезности, важно собирать голоса в одном отзыве, не распыляя на дубликаты.
А сейчас если юзер просто точнее попал по запросу в какой то дубль - уйдёт в него.
Avatar
Sergey Stukov co-founder
Текущая релевантость: считается количество совпадений слов в запросе и текущих фидбаках с учетом стемминга и после этого отображается в порядке от наибольшего количества к меньшему
Avatar
Anton Volkov
Хорошая идея поиска по части слова.
Скажем при вводе "бит" уже можно выводить поиск по битвам, ну и suggest "битвы", "бить", но только те слова, которые реально встречаются в отзывах этого проекта.

Надо ещё понять, по какому принципу считается релевантность?
По голосам?
Avatar
Vladimir Mullagaliyev co-founder
По предложениям в фидбэке:

1. Слова проверяются целиком. Но если оставлять только точные совпадения или вхождения всех слов, то чаще всего ничего не найдется.

2. Работает, в пределах возможностей используемого стеммера.

3. Пока нет, надо думать над реализацией.

4. Именно так сейчас и работает. При задержке ввода в пол секунды начинается автоматический поиск.

5. Тоже надо думать над грамотной реализацией.

6. Будем обсуждать, пока ищем по заголовку и описанию, без приоритета.