Рубрика «индексирование»

Type Hierarchy в IntelliJ IDEAВажной возможностью любой IDE является поиск и навигация по коду. Один из часто используемых вариантов поиска на языке Java — поиск всех реализаций данного интерфейса. Часто такая функция называется иерархией типов (Type Hierarchy) и выглядит как на картинке справа.

Перебирать все классы проекта при вызове этой функции — неэффективно. Можно сохранить в индекс полную иерархию классов во время компиляции, так как компилятор все равно ее строит. Мы это делаем, если компиляция запускается самой IDE, а не делегируется, например, в Gradle. Но это работает, только если после компиляции в модуле ничего не менялось. А в общем случае исходники — самый актуальный источник информации, и индексы строятся по исходникам.

Поиск непосредственных наследников — несложная задача, если мы не имеем дело с функциональным интерфейсом. При поиске реализаций интерфейса Foo надо найти все классы, где есть implements Foo, и интерфейсы, где есть extends Foo, а также анонимные классы вида new Foo(...) {...}. Для этого достаточно заранее построить синтаксическое дерево каждого файла проекта, найти соответствующие конструкции и добавить их в индекс.

Читать полностью »

Только что стало известно что Яндекс начал индексировать Google Документы в числе которых есть и документы с паролями, личными данными и т.д.

image

Ссылка на поисковый запрос

Рекомендуется всем проверить настройки доступа своих Google Документов.

Читать полностью »

Хотите внедрить или доработать функцию поиска? Вам сюда.

Что должен знать о поиске каждый разработчик - 1
Спросите разработчика: «Как бы вы реализовали функцию поиска в своем продукте?» или «Как создать поисковую систему?». Вероятно, в ответ вы услышите что-нибудь такое: «Ну, мы просто запустим кластер Elasticsearch: с поиском сегодня всё просто».

Но так ли это? Во многих современных продуктах по-прежнему не лучшим образом реализован поиск. Настоящий специалист по поисковым системам скажет вам, что лишь немногие разработчики глубоко понимают, как работает поиск, а ведь это знание часто необходимо для улучшения качества поиска.

Есть множество программных пакетов с открытым исходным кодом, проведено немало исследований, однако лишь немногие избранные понимают, как нужно делать функциональный поиск. Как ни забавно, но если поискать в Интернете связанную с реализацией поиска информацию, вы не найдете актуальных и содержательных обзоров.

Цель статьи

Этот текст можно считать собранием ценных идей и ресурсов, которые могут помочь в создании функции поиска. Статья, безусловно, не претендует на исчерпывающую полноту, однако я надеюсь, что ваши отзывы помогут ее доработать (оставляйте замечания в комментариях или свяжитесь со мной).

Основываясь на опыте работы с универсальными решениями и узкоспециализированными проектами самого разного масштаба (в компаниях Google, Airbnb и нескольких стартапах), я расскажу о некоторых популярных подходах, алгоритмах, методах и инструментах.

Недооценка и непонимание масштабов и сложности задачи поиска могут привести к тому, что у пользователей останутся плохие впечатления, разработчики потратят время впустую, а продукт провалится.

Переведено в Alconost
Читать полностью »

Сегодня мы расскажем о новой поисковой технологии «Королев», которая включает в себя не только более глубокое применение нейронных сетей для поиска по смыслу, а не по словам, но и значительные изменения в архитектуре самого индекса.

Как Яндекс научил искусственный интеллект понимать смысл документов - 1

Но зачем вообще понадобились технологии из области искусственного интеллекта, если еще лет двадцать назад мы прекрасно находили в поиске искомое? Чем «Королев» отличается от прошлогоднего алгоритма «Палех», где также использовались нейронные сети? И как архитектура индекса влияет на качество ранжирования? Специально для читателей Хабра мы ответим на все эти вопросы. И начнем с самого начала.

Читать полностью »

Вы когда-нибудь задумывались над тем, что тысячи компаний создают свои продукты и технологии в отрыве от пользовательских потребностей и решают самостоятельно придуманные проблемы, которые слабо коррелируют с реально существующими?

В части создания одной из наших технологий мы, разработчики Macroscop, относились к таким компаниям: на протяжении 6 лет работали над функцией, которая, по нашему мнению, должна была сделать жизнь тысяч людей проще и удобнее.

В 2008 году у нас родилась идея максимально упростить процесс поиска в архивах видеосистем. Представьте среднего размера систему из 100 видеокамер и примерно 1000 часов видеозаписей, которые они оставили за сутки (обычно запись видео производится только когда есть активность в кадре). И вам нужно найти что-то в этих записях, но вы не знаете, где и когда это происходило. Вы будете просматривать записи час, второй, третий, и к моменту, когда найдете то, что нужно, проклянете все на свете.

Мы решили создать инструмент, который позволит искать по видео так же, как Google ищет по тексту: Читать полностью »