BitFunnel es el algoritmo de indexación del motor de búsqueda y un conjunto de componentes utilizados en el motor de búsqueda Bing , [ 1 ] que se hicieron de código abierto en 2016. [ 2 ] BitFunnel utiliza firmas segmentadas por bits en lugar de un índice invertido en un intento de reducir el costo de las operaciones. [ 3 ]
Historia
El progreso en la implementación de BitFunnel se hizo público a principios de 2016, con la expectativa de que habría una implementación utilizable más adelante ese año. [ 4 ] En septiembre de 2016, el código fuente se puso a disposición a través de GitHub . [ 5 ] Un artículo que analiza el algoritmo y la implementación de BitFunnel fue publicado a través del Grupo de Interés Especial en Recuperación de Información de la Asociación para la Maquinaria de Computación en 2017 y ganó el Premio al Mejor Artículo. [ 3 ] [ 6 ]
Componentes
BitFunnel consta de tres componentes principales: [ 1 ]
- BitFunnel: el propio sistema de búsqueda y recuperación de texto.
- WorkBench: una herramienta para preparar texto para su uso en BitFunnel.
- NativeJIT: un componente de software que toma expresiones que utilizan estructuras de datos de C y las transforma en código ensamblador altamente optimizado.
Algoritmo
Descripción general del problema inicial y la solución
El artículo de BitFunnel describe el "problema de coincidencia", que surge cuando un algoritmo debe identificar documentos mediante el uso de palabras clave. El objetivo es identificar un conjunto de coincidencias a partir de un corpus para buscar y una consulta de términos clave con los que comparar. Este problema se suele resolver mediante índices invertidos , donde cada elemento de búsqueda se mantiene con un mapa de palabras clave. [ 3 ]
En cambio, BitFunnel representa cada elemento de búsqueda mediante una firma. Una firma es una secuencia de bits que describe un filtro Bloom de los términos de búsqueda en un elemento determinado. El filtro Bloom se construye mediante el hash de varias posiciones de bits. [ 3 ]
Implementación teórica de firmas de cadenas de bits
La firma de un documento (D) puede describirse como la disyunción lógica de sus firmas de términos:
De manera similar, una consulta para un documento (Q) puede definirse como una unión:
Además, un documento D es miembro del conjunto M' cuando se cumple la siguiente condición:
Este conocimiento se combina luego para producir una fórmula donde M' se identifica mediante documentos que coinciden con la firma de la consulta:
Estos pasos y sus demostraciones se analizan en el artículo de 2017. [ 3 ]
Pseudocódigo para firmas de cadenas de bits
Este algoritmo se describe en el artículo de 2017. [ 3 ]
Referencias
- 1 2 Yegulalp, Serdar (6 de septiembre de 2016). "Microsoft publica componentes de Bing de código abierto para una compilación de código rápida" . InfoWorld .
- ↑ Verma, Arpit (2016-09-07). "Microsoft publica como código abierto los componentes principales del motor de búsqueda Bing: por qué es importante" . Fossbytes . Recuperado el 12 de junio de 2020 .
- 1 2 3 4 5 6 Goodwin, Bob; Hopcroft, Michael; Luu, Dan; Clemmer, Alex; Curmei, Mihaela; Elnikety, Sameh; He, Yuxiong (2017-08-07). "BitFunnel". Actas de la 40.ª Conferencia Internacional ACM SIGIR sobre Investigación y Desarrollo en Recuperación de Información . Nueva York, NY, EE. UU.: ACM. págs. 605–614 . doi : 10.1145/3077136.3080789 . ISBN 978-1-4503-5022-8.
- ↑ "¿Cuándo se podrá usar BitFunnel? · BitFunnel" . bitfunnel.org . Consultado el 12 de junio de 2020 .
- ↑ BitFunnel/BitFunnel , BitFunnel, 12 de mayo de 2020 , consultado el 12 de junio de 2020
- ↑ "Premios SIGIR al Mejor Artículo" . ACM . Consultado el 8 de julio de 2020 .
Enlaces externos
- BitFunnel · GitHub
- BitFunnel · BitFunnel
- Gestión de datos
- Algoritmos de búsqueda
- Técnicas de indexación de bases de datos
- Software gratuito de Microsoft
- Investigación de Microsoft
- Software que utiliza la licencia MIT.
- Software libre programado en C++