stringtranslate.com

Esfinge (motor de búsqueda)

Sphinx es un motor de búsqueda de texto completo que proporciona funcionalidad de búsqueda de texto a aplicaciones cliente.

Descripción general

Sphinx se puede utilizar como servidor independiente o como motor de almacenamiento ("SphinxSE") para la familia de bases de datos MySQL. Cuando se ejecuta como un servidor independiente, Sphinx funciona de manera similar a un DBMS y puede comunicarse con MySQL , MariaDB y PostgreSQL a través de sus protocolos nativos o con cualquier DBMS compatible con ODBC a través de ODBC . MariaDB , una bifurcación de MySQL, se distribuye con SphinxSE. [2]

EsfingeAPI

Si Sphinx se ejecuta como un servidor independiente, es posible utilizar SphinxAPI para conectarle una aplicación. Las implementaciones oficiales de la API están disponibles para los lenguajes PHP , Java , Perl , Ruby y Python . También se encuentran disponibles implementaciones no oficiales para otros idiomas, así como varios complementos y módulos de terceros [3] . Se pueden indexar otras fuentes de datos mediante canalización en un formato XML personalizado . [4]

EsfingeQL

El demonio de búsqueda Sphinx admite el protocolo de red binario MySQL y se puede acceder a él con la API y/o los clientes regulares de MySQL. Sphinx admite un subconjunto de SQL conocido como SphinxQL. Admite consultas estándar de todos los tipos de índices con SELECT, modificación de índices en tiempo real con INSERT, REPLACE y DELETE, y más.

EsfingeSE

Sphinx también puede proporcionar un motor de almacenamiento especial para bases de datos MariaDB y MySQL. Esto permite que MySQL y MariaDB se comuniquen con Sphinx searchdpara ejecutar consultas y obtener resultados. Los índices Sphinx se tratan como tablas SQL normales. El motor de almacenamiento SphinxSE se envía con MariaDB.

Campos de texto completo e indexación

Sphinx está configurado para examinar un conjunto de datos a través de su indexador. El proceso del indexador crea un índice de texto completo (una estructura de datos especial que permite búsquedas rápidas de palabras clave) a partir de los datos/texto proporcionados. Los campos de texto completo son el contenido resultante indexado por Sphinx; se pueden buscar (rápidamente) por palabras clave. Los campos tienen nombre y usted puede limitar sus búsquedas a un solo campo (por ejemplo, buscar solo por "título") o un subconjunto de campos (por ejemplo, solo por "título" y "resumen"). El formato de índice de Sphinx generalmente admite hasta 256 campos. Tenga en cuenta que los datos originales no se almacenan en el índice Sphinx, sino que se descartan durante el proceso de indexación; Sphinx asume que usted almacena esos contenidos en otro lugar.

Atributos

Los atributos son valores adicionales asociados con cada documento que se pueden utilizar para realizar filtrado y clasificación adicionales durante la búsqueda. Los atributos se nombran. Los nombres de atributos no distinguen entre mayúsculas y minúsculas. Los atributos no están indexados en texto completo; se almacenan en el índice tal cual. Los tipos de atributos admitidos actualmente son:

(desde 1.10-beta);

(desde 2.1.1-beta); [5] [6]

Atributos JSON en Sphinx

Sphinx, al igual que las bases de datos SQL clásicas , funciona con el llamado esquema fijo , es decir, un conjunto de columnas de atributos predefinidos. Funcionan bien cuando la mayoría de los datos almacenados en realidad tienen valores: asignar datos dispersos a columnas estáticas puede resultar engorroso. Supongamos, por ejemplo, que está ejecutando una comparación de precios o un sitio de subastas con muchas categorías de productos diferentes. Algunos de los atributos, como el precio o el proveedor, son idénticos en todos los productos. Pero a partir de ahí, para las computadoras portátiles, también necesita almacenar el peso, el tamaño de la pantalla, el tipo de HDD, el tamaño de la RAM, etc. Y, digamos, para las palas, probablemente desee almacenar el color, la longitud del mango, etc. Por lo tanto, es manejable en una sola categoría, pero todos los campos distintos que necesita para todos los productos en todas las categorías son innumerables. El campo JSON se puede utilizar para solucionar este problema. Dentro del atributo JSON no necesitas una estructura fija. Puede tener varias claves que pueden estar presentes o no en todos los documentos. Cuando intenta filtrar por una de estas claves, Sphinx ignorará los documentos que no tienen la clave en el atributo JSON y funcionará solo con aquellos documentos que la tengan.

Licencia

Hasta la versión 3, Sphinx tiene doble licencia ; cualquiera:

  1. Licencia pública general GNU versión 2 o
  2. La licencia propietaria está disponible para casos de uso que no están dentro de los términos de GNU GPLv2.

Desde la versión 3, Sphinx se ha convertido en propietario, con la promesa de publicar su código fuente en el futuro [7]

Ejemplos de uso de la esfinge

Lista de características

Rendimiento y escalabilidad

Tenedor

En 2017, miembros clave del equipo original de Sphinx formaron una bifurcación del proyecto llamada Manticore. [18] [19] El equipo de Manticore se ha fijado el siguiente objetivo: ofrecer software gratuito rápido, estable y potente para la búsqueda de texto completo. El equipo de Manticore mantiene su código abierto y lo publica bajo licencia GPLv2 [20] en lugar de la búsqueda Original Sphinx, que cierra el código fuente de la tercera versión.

Ver también

Referencias

  1. ^ "3 de febrero de 2023. Lanzamiento de Sphinx 3.5.1" . Consultado el 15 de junio de 2023 .
  2. ^ "Pregúntale a Monty: Acerca de SphinxSE". kb.askmonty.org . Programa Monty AB . Consultado el 16 de agosto de 2013 .
  3. ^ "Sphinx Wiki: herramientas de terceros". sphinxsearch.com . Wiki de búsqueda de esfinge . Consultado el 16 de agosto de 2013 .
  4. ^ "xmlpipe2". sphinxsearch.com . Documentación de búsqueda de Sphinx . Consultado el 16 de agosto de 2013 .
  5. ^ "Atributos JSON en Sphinx 2.1.1". sphinxsearch.com . Blog de búsqueda de esfinge. 7 de febrero de 2013 . Consultado el 16 de agosto de 2013 .
  6. ^ "Compatibilidad total con JSON en el maletero". sphinxsearch.com . Blog de búsqueda de esfinge. 8 de agosto de 2013 . Consultado el 16 de agosto de 2013 .
  7. ^ "Sphinx | ​​Servidor de búsqueda de código abierto".
  8. ^ "Esfinge en Craigslist". craigslist.org . Craiglist . Consultado el 17 de agosto de 2013 .
  9. ^ "Reclutamiento de GM". aleph-networks.com . Aleph-redes . Consultado el 1 de octubre de 2012 .
  10. ^ "Búsqueda de sitios PHP ultrarrápida". tradebit.com . Bit de cambio . Consultado el 17 de agosto de 2013 .
  11. ^ "Sphinx Search beta para Vbulletin 4.0". vbulletin.com . Vboletín . Consultado el 17 de agosto de 2013 .
  12. ^ "Extensión de búsqueda Sphinx para MediaWiki". mediawiki.org . MediaWiki: Svemir Brkic, Paul Grinberg . Consultado el 17 de agosto de 2013 .
  13. ^ "Desarrollado por Sphinx Search: Boardreader". sphinxsearch.com . Búsqueda de esfinge . Consultado el 17 de agosto de 2013 .
  14. ^ ab "Desarrollado por Sphinx". sphinxsearch.com/ .
  15. ^ "Acerca de la Esfinge". sphinxsearch.com . Búsqueda de esfinge . Consultado el 16 de agosto de 2013 .
  16. ^ ab "Desarrollado por Sphinx". sphinxsearch.com . Búsqueda de esfinge . Consultado el 10 de mayo de 2015 .
  17. ^ "Craigslist: hoja informativa". craigslist.org . Lista de Craigslist. Archivado desde el original el 5 de agosto de 2012 . Consultado el 16 de agosto de 2013 .
  18. ^ "Acerca de la búsqueda de Mantícora". manticoresearch.com . Consultado el 24 de abril de 2023 .
  19. ^ "Búsqueda de Mantícora - форк Sphinx: отчёт за 3 года". Хабр (en ruso) . Consultado el 24 de abril de 2023 .
  20. ^ "Сравниваем поисковики для сайта: Mantícora y Esfinge". Журнал (en ruso) . Consultado el 24 de abril de 2023 .

Otras lecturas

enlaces externos