Разработчик (и) | Microsoft |
---|---|
Первоначальный выпуск | 2016; 4 года назад (2016) |
Репозиторий | github.com / BitFunnel |
Написано на | C ++ |
Платформа | Windows, macOS, Ubuntu |
Тип | Индексирование поисковой системы алгоритм |
Лицензия | Лицензия MIT |
Веб-сайт | bitfunnel.org |
BitFunnel представляет собой алгоритм индексации поисковой системы и набор компонентов, используемых в поисковой системе Bing, которая была сделана с открытым исходным кодом в 2016 году. BitFunnel использует битовые подписи вместо инвертированный индекс в попытке снизить стоимость операций.
Прогресс в реализации BitFunnel был обнародован в начале 2016 года, и ожидалось, что в том же году будет полезная реализация. В сентябре 2016 года исходный код был доступен через GitHub. Документ, в котором обсуждается алгоритм и реализация BitFunnel, был выпущен Специальной группой по поиску информации Ассоциации вычислительной техники в 2017 году и получил награду за лучшую работу.
BitFunnel состоит из трех основных компонентов:
В документе BitFunnel описывается «проблема соответствия», которая возникает, когда алгоритм должен идентифицировать документы с помощью ключевых слов. Задача задачи - определить набор соответствий, заданный корпусом для поиска, и запросом ключевых слов для сопоставления. Эта проблема обычно решается с помощью инвертированного индекса es, где каждый доступный для поиска элемент поддерживается с помощью map ключевых слов.
Напротив, BitFunnel представляет каждый доступный для поиска элемент через подпись. Подпись - это последовательность битов, которая описывает фильтр Блума доступных для поиска терминов в данном доступном для поиска элементе. Фильтр Блума создается путем хеширования через несколько битовых позиций.
Подпись документа (D) может быть описана как логическое или его термина подписи:
Аналогичным образом запрос для документа (Q) можно определить как объединение:
Кроме того, документ D является членом множества M ', если выполняется следующее условие:
Затем эти знания объединяются для создания формула, где M 'идентифицируется документами, соответствующими сигнатуре запроса:
Эти шаги и их доказательства обсуждаются в статье 2017 г.
Этот алгоритм описан в статье 2017 г.