He estado usando el módulo Apache Solr Search en Drupal 6 y estoy buscando en la API de búsqueda para instalar Drupal 7. He visto algunas discusiones aquí, pero estoy buscando alguna razón para elegir una u otra.
¿Hay alguna razón para elegir uno sobre el otro? Si es así, ¿por qué o por qué no? He oído que puede haber problemas de complejidad y / o problemas de rendimiento con Search API. ¿Es esto cierto?
Respuestas:
A partir de 2015, podemos comparar Search API vs Apache Solr Search modules con los números:
lo que indica la clara elección. Search API se desarrolló 3 años después y logró aprovechar a su competidor.
Además, Search API proporciona una arquitectura muy diferente y más flexible y se mantiene de manera más activa. Lo que es más importante, ya es compatible con los nuevos Drupal 8 y Solr 5.x que Apachesolr aún no tiene.
La API de búsqueda comenzó de nuevo y es más flexible en su configuración, incluido el soporte de Vistas (para Apachesolr necesita el módulo adicional). También hay muchos módulos que amplían su funcionalidad.
En segundo lugar, para evitar que la comunidad resuelva dos problemas debido a las diferencias en la arquitectura de estos módulos, actualmente existen algunos esfuerzos combinados entre estos dos proyectos, tales como:
Fuente: Battleplan for Search & Solr en Drupal 8 en Acquia
Tenga en cuenta que no se recomienda utilizar ambos módulos en el mismo entorno.
Para un análisis técnico adicional de las diferencias, verifique los detalles a continuación.
API de búsqueda
Descripción general de la API:
Muy basado en API de entidad
Características de extensión:
Estructura basica:
Características del índice:
Basado en la API de la entidad:
Cómo configurar su índice - campos:
Vistas de API de búsqueda:
Por defecto: datos recuperados a través de la carga de la entidad
Buscar recetas de API:
Ganchos para agregar
Gancho disparado al indexar elementos
Apachesolr
Características de extensión:
Recetas Apachesolr:
Fuente: Search API vs Apachesolr slideshow
Ver también:
fuente
He intentado usar ambos y puedo decir esto: depende de tu situación.
Actualmente, la versión estable 7 del módulo de integración ApacheSolr solo puede indexar nodos. Por lo tanto, si tiene entidades que no son nodos que necesita indexar, debe usar el parche de multientidad aún en progreso para ello. La integración de ApacheSolr puede almacenar muchos datos diferentes de contenido cuando se configura correctamente.
La API de búsqueda indexa las entidades y tiene muchas cosas maravillosas escritas para ello. Sin embargo, la API de búsqueda solo obtiene la identificación de los datos que está buscando. Esto significa que para cargar más datos que no sean la ID, se requerirá una carga de entidad, golpeando su base de datos o cualquier capa de almacenamiento en caché que coloque en su lugar. Para sitios con mucha búsqueda, esta podría no ser la solución más optimizada.
Aquí hay una gran presentación dada en drupalcon chicago sobre el módulo de integración ApacheSolr, minuto 16 para menciones a Search API.
fuente
Creo que realmente debes probar ambos y tomar una decisión informada. Pero tenga en cuenta que apachesolr todavía no tiene una versión beta para Drupal 8.
En Search API no puede combinar entidades en el mismo índice SearchAPI. Por lo tanto, los perfiles, los usuarios y los nodos están en diferentes índices. Hay un módulo para permitir búsquedas de múltiples índices, no cubrió mis necesidades, pero YMMV. Si tiene muchos tipos de contenido y muchos campos en el mismo índice, la definición del índice puede volverse bastante difícil de manejar. (NB SearchAPI D8 informa que admite búsquedas de índice múltiple)
Apachesolr permite la edición de campos por contenido, lo que puede ser más fácil, pero no tiene la capacidad de agregar contenido relacionado a un documento, de hecho, espera tener que escribir un código personalizado para incluir información de colecciones de campos, referencias y algunos otros campos. Apachesolr D7 no es compatible con ajax, a menos que use vistas, pero al usar vistas pierde facetas. Dicho esto ... modificar la información almacenada en el índice es bastante fácil si está contento de codificar en ganchos.
La idea de buscar identificadores de entidad y luego renderizar cada uno individualmente (puede ser utilizado por ambos módulos) parece ser una pesadilla de rendimiento, pero, si almacena en caché las pantallas de su entidad, podría ser más eficiente que renderizar desde la respuesta solr.
fuente