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 las aplicaciones cliente.

Descripción general

Sphinx se puede utilizar como un servidor independiente o como un 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]

API de esfinge

Si Sphinx se ejecuta como un servidor independiente, es posible utilizar SphinxAPI para conectar una aplicación a él. Hay implementaciones oficiales de la API disponibles para los lenguajes PHP , Java , Perl , Ruby y Python . También hay implementaciones no oficiales para otros lenguajes, así como varios complementos y módulos de terceros [3] . Se pueden indexar otras fuentes de datos a través de una tubería en un formato XML personalizado . [4]

Esfinge QL

El demonio de búsqueda Sphinx admite el protocolo de red binario MySQL y se puede acceder a él con la API MySQL habitual o con los clientes. 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 de Sphinx se tratan como tablas SQL normales. El motor de almacenamiento SphinxSE se incluye 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 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/textos proporcionados. Los campos de texto completo son el contenido resultante que es 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 a 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 de 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 filtros y ordenamientos adicionales durante la búsqueda. Los atributos tienen un nombre. Los nombres de los atributos no distinguen entre mayúsculas y minúsculas. Los atributos no se indexan en texto completo; se almacenan en el índice tal como están. 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 un denominado esquema fijo , es decir, un conjunto de columnas de atributos predefinidas. Estos funcionan bien cuando la mayoría de los datos almacenados en realidad tienen valores: asignar datos dispersos a columnas estáticas puede ser 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 los portátiles, también necesita almacenar el peso, el tamaño de la pantalla, el tipo de disco duro, 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 legión. El campo JSON se puede utilizar para superar esto. Dentro del atributo JSON no necesita una estructura fija. Puede tener varias claves que pueden estar presentes o no en todos los documentos. Cuando intente filtrar según una de estas claves, Sphinx ignorará los documentos que no tengan la clave en el atributo JSON y trabajará solo con aquellos documentos que la tengan.

Licencia

Hasta la versión 3, Sphinx tiene licencia dual :

  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 la GNU GPLv2.

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

Ejemplos de uso de la esfinge

Lista de funciones

Rendimiento y escalabilidad

Tenedor

En 2017, miembros clave del equipo original de Sphinx bifurcaron el proyecto bajo el nombre de Manticore, [18] con la intención de corregir errores y desarrollar nuevas características. [19] A diferencia de Sphinx, Manticore continúa siendo lanzado como código abierto bajo la versión 3 de la GPL . [20]

Véase también

Referencias

  1. ^ "29 de marzo de 2024. Se lanzó Sphinx 3.7.1".
  2. ^ "AskMonty: Acerca de SphinxSE". kb.askmonty.org . Programa Monty AB . Consultado el 16 de agosto de 2013 .
  3. ^ "Sphinx Wiki: Herramientas de terceros". sphinxsearch.com . Sphinx Search Wiki . Consultado el 16 de agosto de 2013 .
  4. ^ "xmlpipe2". sphinxsearch.com . Documentación de Sphinx Search . Consultado el 16 de agosto de 2013 .
  5. ^ "Atributos JSON en Sphinx 2.1.1". sphinxsearch.com . Blog de búsqueda de Sphinx. 7 de febrero de 2013 . Consultado el 16 de agosto de 2013 .
  6. ^ "Compatibilidad total con JSON en el tronco". sphinxsearch.com . Blog de búsqueda de Sphinx. 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 . Craigslist . Consultado el 17 de agosto de 2013 .
  9. ^ "Reclutamiento de GM". aleph-networks.com . Aleph-networks . Consultado el 1 de octubre de 2012 .
  10. ^ "Búsqueda en sitios PHP ultrarrápida". tradebit.com . Tradebit . Consultado el 17 de agosto de 2013 .
  11. ^ "Sphinx Search beta para Vbulletin 4.0". vbulletin.com . Vbulletin . 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 . Sphinx Search . Consultado el 17 de agosto de 2013 .
  14. ^ ab "Desarrollado por Sphinx". sphinxsearch.com/ .
  15. ^ "Acerca de Sphinx". sphinxsearch.com . Sphinx Search . Consultado el 16 de agosto de 2013 .
  16. ^ ab "Desarrollado por Sphinx". sphinxsearch.com . Sphinx Search . Consultado el 10 de mayo de 2015 .
  17. ^ "Craigslist: Factsheet". craigslist.org . Craigslist. Archivado desde el original el 5 de agosto de 2012 . Consultado el 16 de agosto de 2013 .
  18. ^ "Acerca de Manticore Search". manticoresearch.com . Consultado el 24 de abril de 2023 .
  19. ^ "Manticore Search: 3 años después de la bifurcación de Sphinx". manticoresearch.com . Consultado el 2 de mayo de 2024 .
  20. ^ "manticoresoftware/manticoresearch". GitHub . Consultado el 2 de mayo de 2024 .

Lectura adicional

Enlaces externos