Tuesday, May 21, 2024

ElasticSearch vs Apache SolrCloud

 

Elasticsearch and Apache SolrCloud are both powerful, distributed search engines built on top of Apache Lucene.

Both Elasticsearch and Solr are released under the Apache Software License, however, Solr is truly open-source – Community over codeSolr code is not always beautiful, but once the feature is there it usually stays there and is not removed from the code base. Anyone can contribute to Solr.

On the other hand, Elasticsearch is technically open source, but less so in spirit. Anyone can see the source on Github, anyone can change it and offer a contribution, but only employees of Elastic can make changes to Elasticsearch, 

Apache SolrCloud:

Schema-Based Search: Solr is schema-based and allows you to define a schema for your data, including fields, field types, and analysis chain.

Distributed Search Platform: Apache SolrCloud is a distributed search platform built on top of Apache Lucene. It's known for its scalability and fault tolerance.

RESTful API and Native Clients: Similar to Elasticsearch, Solr provides a RESTful API for indexing and querying data. It also offers native clients for Java, Python, and other programming languages.

 

Dynamic Clustering and Load Balancing: SolrCloud dynamically distributes indexed data across a cluster of nodes and provides built-in load balancing and failover capabilities.

 

Rich Query Syntax: Solr supports a rich query syntax including full-text search, filtering, faceting, highlighting, spatial search, and more.

 

Apache Project: Solr is an Apache Software Foundation project with a large and active open-source community.

 

Built-in Replication and Security: SolrCloud provides built-in replication for data redundancy and security features like authentication and authorization.

 

ElasticSearch:

Distributed Document Store: Elasticsearch is a distributed document-oriented search engine that stores data in JSON format.

 

Real-time Search and Analytics: It's optimized for near real-time search and analytics, making it suitable for various use cases including log and event data analysis.

 

RESTful API: Elasticsearch provides a RESTful API for indexing and querying data, making it easy to integrate with various programming languages and frameworks.

 

Built-in Scalability and Resilience: Elasticsearch is designed to scale horizontally, allowing you to add nodes to the cluster to handle increasing data and query loads. It also provides built-in resilience features like automatic shard replication and failover.

 

Rich Query DSL: It offers a powerful query DSL (Domain Specific Language) for constructing complex queries including full-text search, aggregations, filtering, and more.

 

Ecosystem and Plugins: Elasticsearch has a rich ecosystem with various plugins available for extending its functionality, including plugins for monitoring, security, and data visualization.

 

Owned by Elastic NV: Elasticsearch is developed and maintained by Elastic NV, the same company behind the Elastic Stack (formerly ELK Stack), which includes Elasticsearch, Logstash, and Kibana.

 

Here is a tabular comparison between Solr/SolrCloud and Elasticsearch, highlighting their key differences and similarities:

Feature/Aspect

Solr/SolrCloud

Elasticsearch

Developer

Apache Software Foundation

Elastic NV

Initial Release

2006

2010

Primary Use Case

Full-text search, faceted search, enterprise search

Full-text search, log and event data analysis

Architecture

Standalone (Solr) and distributed (SolrCloud)

Distributed

Indexing

Requires schema definition, can auto-detect

Schema-free, flexible mappings

Query Language

Solr Query Language (based on Lucene)

Query DSL (based on JSON)

Scalability

SolrCloud supports sharding and replication

Built-in sharding and replication

Data Storage

Supports various formats (XML, JSON, CSV)

JSON format primarily

Faceting and Aggregation

Advanced faceting and filtering capabilities

Powerful aggregations and metrics

Community and Support

Large open-source community, commercial support available via Lucidworks

Large community, commercial support via Elastic

Installation and Setup

Can be more complex, especially for SolrCloud

Generally easier to set up and configure

Cluster Management

Managed via Zookeeper in SolrCloud

Managed via built-in APIs, Elastic Stack tools (Kibana, etc.)

Plugins and Extensibility

Wide range of plugins, extensible via Java

Extensive plugin ecosystem, extensible via REST API

Performance

High performance for read-heavy workloads, optimized for search use cases

High performance for both search and analytics, optimized for large-scale data

Security

Basic authentication and authorization, SSL, Kerberos (via plugins or external solutions)

Built-in security features, including TLS, RBAC, and more (with X-Pack)

Monitoring and Management

Tools available (e.g., Solr Admin UI), less integrated monitoring

Integrated monitoring and management tools (e.g., Kibana)

Data Visualization

Limited to third-party tools (e.g., Banana, Grafana)

Native support via Kibana, seamless integration

Updates and Versioning

Regular updates, but can be less frequent

Frequent updates and releases, active development

 Happy learning!

Friday, May 17, 2024

Revolutionizing Content Delivery: Adobe Edge Services with AEM

 

In today's fast-paced digital era, delivering exceptional user experiences is paramount. Content needs to be faster, more personalized, and globally scalable. Adobe Experience Manager (AEM) has long been a leader in content management systems, but with the introduction of Edge Delivery Services, it's taking content delivery to a whole new level. Let’s understand what Edge Service is.

What are Adobe Edge Services?

Edge Services is an extension of AEM, specifically focused on optimizing content delivery. At its core, Edge Services leverages a robust content delivery network (CDN) to distribute content closer to end-users, thereby helping in performance improvement. It offers:

Enhanced Scalability:

Edge Services can handle surges in traffic with ease, ensuring consistent performance even during peak periods. This is crucial for businesses with unpredictable traffic patterns.

Reduced Latency: 

Content is cached at the edge, minimizing the distance it needs to travel to reach users. This translates to blazing-fast loading times, especially for geographically dispersed audiences.

Simplified Authoring:

AEM Edge Services streamlines the authoring experience. You can create content using familiar AEM tools and seamlessly deploy it for edge delivery. No need for complex server-side development.

Edge Delivery services are a composable set of services that allow for a high degree of flexibility in how you author content on your website. You can use both AEM content management with Universal Editor authoring as well as Document-based Authoring. Edge Delivery Services use GitHub so customers can manage and deploy code directly from their GitHub repository. For example, you can write content in either Google Docs or Microsoft Word and the functionality of your site can be developed by using CSS and JavaScript in GitHub. When you are ready, you can use the Sidekick browser extension to preview and publish content updates.

Advantages for Business

Increased Conversions: 

A frictionless user experience leads to higher conversion rates, boosting your bottom line.

Reduced Infrastructure Costs:

 Edge Services offloads content delivery from your origin servers, potentially reducing infrastructure overhead.

Improved User Experience: 

Faster loading times and smoother interactions keep users engaged and coming back for more.

Fast Sites with High Performance:

Create fast sites with a perfect Lighthouse Score and continuously monitor your site performance through real user monitoring (RUM).

Increase Authoring Efficiency: 

Increase authoring efficiency by decoupling content sources. Out of the box, you can use both AEM authoring and Document-based Authoring. As such, you can work with multiple content sources on the same website.

Built-in Experimentation Framework: Use a built-in experimentation framework that allows quick test creation, execution without performance impact, and fast release to production of a test winner.

Do you really need Adobe Edge Services?

It focuses on user experience like personalization, provides globally distributed audiences, it's not a one-size-fits-all solution. If your website is relatively static and has a limited audience, traditional AEM deployment would suffice for you.

If you're fascinated by Edge Services, here's how to get started:

Evaluate your needs: 

Assess your traffic patterns, target audience, and content delivery requirements.

Explore AEM documentation: 

Adobe provides comprehensive resources to guide you through the setup and configuration process. AEM Documentation

Consider a Proof of Concept (POC): 

Set up a POC to experience the benefits firsthand and see if it aligns with your goals.

Conclusion

Adobe Edge Services with AEM represents a significant leap forward in content delivery. By leveraging edge computing, businesses can deliver unparalleled user experiences and gain a competitive edge in the digital marketplace. Eventually, it depends on the business need if you want to go with Edge services or not.

Happy Learning!


Stay connected for How we can use Edge Services in content authoring with Universal Editor.

 

Thursday, March 28, 2024

Install yarn on windows

 In this article, we will see how we can install yarn on windows.

First lets understand what yarn is?

Yarn is an established open-source package manager used to manage dependencies in JavaScript projects. It assists with the process of installing, updating, configuring, and removing packages dependencies, eventually helping you reach your objectives faster with fewer distractions.


  1. Start by enabling Corepack, if it isn't already; this will add the yarn binary to your PATH:

corepack enable

yarn set version stable // install the latest stable version

yarn install


Check version of yarn:


yarn --version

yarn set-version:


yarn set version:


Install the specific yarn version. for eg: 4.0.2 then run below command

yarn set version 4.0.2






Happy Coding!

Thursday, March 21, 2024

Set up local AEM SDK

 Adobe Experience Manager (AEM) can be run locally using the AEM as a Cloud Service SDK’s Quickstart Jar. This allows developers to deploy to, and test custom code, configuration, and content before committing it to source control, and deploying it to a AEM as a Cloud Service environment.


Follow  aem local setup, all steps remain same except AEM SDK jar file.

Download the AEM as a Cloud Service SDK


  1. Open Software Distribution portal.  Log in to https://experience.adobe.com/#/downloads with your Adobe ID
  2. Note that your Adobe Organization must be provisioned for AEM as a Cloud Service to download the AEM as a Cloud Service SDK.
  3. Navigate to the AEM as a Cloud Service tab
  4. Sort by Published Date in Descending order or search aem sdk in filters.
    Adobe Software Distribution Portal

  5. Click on the latest AEM SDK result row.
  6. Review and accept the EULA, and tap the Download button.

Extract the Quickstart Jar 

Unzip the downloaded aem-sdk-XXX.zip file

aem sdk- verion extract


You can see it has dispatcher in the same zip file.Ignore for now
Use cq-author jar for author setup. You can rename this jar to "aem-author-p4502.jar"

  • Create the folder ~/aem-sdk/author

  • Copy aem-author-p-4502.jar to author folder.
  • Extract jar by
    • java -jar aem-author-p-4502.jar
    • Provide admin password as "admin".
  • Access the local AEM Author Service at http://localhost:4502 in a Web browser

Setup Publish Instance


Follow same steps for publish instance. Jar name would be "aem-publish-p4503.jar" and extract jar by:

java -jar aem-publish-p4503.jar.

Access the local AEM Publish Service at http://localhost:4503 in a Web browser.


Note:You cannot start the AEM as Cloud Service Quickstart Jar by double-clicking.


Happy Learning!


Wednesday, March 20, 2024

Adobe’s Edge Delivery Services fires Digital Experiences

 

In today’s digital age, providing fast and engaging web experiences is a top priority for businesses. 

Content needs to be faster, more personalized, and globally scalable. Adobe Experience Manager (AEM) has long been a leader in content management systems, but with the introduction of Edge Delivery Services, it's taking content delivery to a whole new level. 

Let’s understand what Edge Service is.


What are Adobe Edge Delivery Services?

Adobe Edge Delivery Services, formerly known as AEM Franklin and also referred to as Project Helix or Composability, offer a novel way to publish AEM pages using Google Drive or Microsoft Office via SharePoint. 


Edge Delivery Services offers:

Fast Sites with High Performance: Create fast sites with a perfect Lighthouse Score and continuously monitor your site performance through real user monitoring (RUM).

Increase Authoring Efficiency: Increase authoring efficiency by decoupling content sources. Out of the box, you can use both AEM authoring and Document-based Authoring. As such, you can work with multiple content sources on the same website.

Built-in Experimentation Framework: Use a built-in experimentation framework that allows quick test creation, execution without performance impact, and fast release to production of a test winner.


How do Edge Delivery Services work?

The below diagram illustrates how you can edit content in Microsoft Word (document-based editing) and publish to Edge Delivery Services. It also shows the AEM publishing method using the Universal Editor.





Edge Delivery services is a composable set of services that allows for a high degree of flexibility in how you author content on your website. As mentioned previously,you can use both AEM content management with Universal Editor authoring as well as Document-based Authoring .

For example, you can use content directly from Microsoft Word or Google Docs. This means that documents from those sources can become pages on your website. Furthermore, headings, lists, images, font elements can all be transferred from the initial source into the website. The new content is added instantly without a rebuild process.

Edge Delivery Services uses GitHub so customers can manage and deploy code directly from their GitHub repository. For example, you can write content in either Google Docs or Microsoft Word and the functionality of your site can be developed by using CSS and JavaScript in GitHub. When you are ready, you can use the Sidekick browser extension to preview and publish content updates.

Usages:

Edge Delivery Services (EDS) in AEM can be employed in various ways to enhance the performance, scalability, security, and personalization of AEM websites. Here are some examples:

  • Create and publish content quickly and easily: EDS simplifies the process for non-technical users to create and publish content. Users can create a document in Google Drive or Microsoft Office and publish it to AEM with a few clicks.
  • Create personalized content: EDS can be used to generate personalized content for diverse user groups and audiences. For instance, a user could create a document with different page versions tailored to various geographic regions.
  • Create dynamic content: EDS can be harnessed to create dynamic content that adapts based on user input or other variables. For example, a user could create a document featuring a product catalog that automatically updates as new products are added.


How Edge Delivery Services is utilized ?

Team wise uses:


  • A marketing team can use Edge Delivery Services to create and publish blog posts, landing pages, and other marketing content.

  • A sales team can utilize Edge Delivery Services to create personalized sales proposals and presentations for individual customers.

  • A product team can take advantage of Edge Delivery Services to create dynamic product catalogs and other product-related content.

  • A customer service team can use Edge Delivery Services to create dynamic knowledge base articles and other customer support materials.

  • Organization wise use:

  • A media company employs Edge Delivery Services  to produce personalized articles for its readers, utilizing AEM EDS to recommend articles based on reader browsing history and interests.

  • A travel website employs Edge Delivery Services  to create personalized travel itineraries for users, suggesting flights, hotels, and activities based on their travel preferences.

  • A financial services company uses Edge Delivery Services  to craft personalized financial advice for its customers. The financial services company employs AEM EDS to recommend products and services based on customer financial situations and goals.

  • A healthcare website utilizes Edge Delivery Services  to generate personalized health information and services, recommending health tips and resources based on user medical histories and relevant factors.

Edge Delivery Services is a powerful set of tools in AEM that find applications across diverse industries and use cases, where fast, reliable, and personalized content delivery is critical to delivering a superior user experience and achieving business goals.

Take away:

Adobe Edge Delivery Services empower creators to effortlessly author content using familiar tools like documents and deliver it with exceptional page-speed scores as it provides perfect Lighthouse Score.

Refer Edge delivery service documentation here

Thursday, February 8, 2024

Magento 2.4.x setup:install problem : "the default website isn't defined. Set the website and try again."

 

In this article, We are checking if there is an issue related to database setup with below constraints:

  • Magento-2.4.x is alreay setup with composer files hence you have magento2 folder in htdocs of apache server.
  • database is already setup.
  • Database got corrupted due to any issue and you want to install db again because of some xyz reason.
  • You tried to run magento setup command and see below error.

Magento 2.4.4 setup:install problem : "the default website isn't defined. Set the website and try again."


If you will get this issue while setting up database with below command:

php bin/magento setup:install --base-url="http://yourname.magento.com/" --db-host="localhost" --db-name="magento2" --db-user="root" --db-password="root" --admin-firstname="admin" --admin-lastname="admin" --admin-email="user@example.com" --admin-user="admin" --admin-password="Admin@123456" --language="en_US" --currency="USD" --timezone="America/Chicago" --use-rewrites="1" --backend-frontname="admin" --search-engine=elasticsearch7 --elasticsearch-host="localhost" --elasticsearch-port=9200

Drop magento2 database and Go to your magento2 codebase and delete env.php file which has database information.

env.php file location: <Xampp-location>\htdocs\magento2\app\etc

Delete env.php

run magento setup command again.

Hope this helps!



Happy Coding!

ElasticSearch vs Apache SolrCloud

  Elasticsearch and Apache SolrCloud are both powerful, distributed search engines built on top of Apache Lucene. Both Elasticsearch and S...