From 3d8279f0a003fe1790d0345b11ad65c3f85c4c0e Mon Sep 17 00:00:00 2001 From: trean Date: Thu, 19 Feb 2026 17:31:46 +0100 Subject: [PATCH] Lucene upd (#2142) * update of the lucene landing page * continue updating the lucene landing page * moved smooth scroll to index.js * sales calendar page * moved embedded code to markdown --- ...c-lucene-form.md => elastic-lucene-cta.md} | 10 +-- .../elastic-lucene/elastic-lucene-hero.md | 24 +++---- .../content/elastic-lucene/why-qdrant.md | 6 +- qdrant-landing/content/lp/_index.md | 6 ++ qdrant-landing/content/lp/lucene/_index.md | 6 ++ qdrant-landing/content/lp/lucene/calendar.md | 9 +++ .../themes/qdrant-2024/assets/css/base.scss | 2 + .../partials/elastic-lucene/_calendar.scss | 5 ++ .../css/partials/elastic-lucene/_cta.scss | 70 +++++++++++++++++++ .../css/partials/elastic-lucene/_form.scss | 66 ----------------- .../css/partials/elastic-lucene/_hero.scss | 30 ++++++-- .../css/partials/elastic-lucene/_index.scss | 2 + .../themes/qdrant-2024/assets/js/index.js | 20 ++++++ .../qdrant-2024/assets/js/vendor/anchor.js | 20 ------ .../layouts/elastic-lucene/list.html | 9 +-- .../layouts/elastic-lucene/single.html | 24 ++++++- .../partials/elastic-lucene/cta-section.html | 17 +++++ .../partials/elastic-lucene/features.html | 2 +- .../layouts/partials/elastic-lucene/form.html | 17 ----- .../layouts/partials/elastic-lucene/hero.html | 14 +++- .../layouts/partials/elastic-lucene/why.html | 2 +- .../static/img/elastic-lucene/sprinklr.svg | 44 +----------- 22 files changed, 222 insertions(+), 183 deletions(-) rename qdrant-landing/content/elastic-lucene/{elastic-lucene-form.md => elastic-lucene-cta.md} (57%) create mode 100644 qdrant-landing/content/lp/_index.md create mode 100644 qdrant-landing/content/lp/lucene/_index.md create mode 100644 qdrant-landing/content/lp/lucene/calendar.md create mode 100644 qdrant-landing/themes/qdrant-2024/assets/css/partials/elastic-lucene/_calendar.scss create mode 100644 qdrant-landing/themes/qdrant-2024/assets/css/partials/elastic-lucene/_cta.scss create mode 100644 qdrant-landing/themes/qdrant-2024/layouts/partials/elastic-lucene/cta-section.html delete mode 100644 qdrant-landing/themes/qdrant-2024/layouts/partials/elastic-lucene/form.html diff --git a/qdrant-landing/content/elastic-lucene/elastic-lucene-form.md b/qdrant-landing/content/elastic-lucene/elastic-lucene-cta.md similarity index 57% rename from qdrant-landing/content/elastic-lucene/elastic-lucene-form.md rename to qdrant-landing/content/elastic-lucene/elastic-lucene-cta.md index ee16b774c..16b124cb9 100644 --- a/qdrant-landing/content/elastic-lucene/elastic-lucene-form.md +++ b/qdrant-landing/content/elastic-lucene/elastic-lucene-cta.md @@ -3,12 +3,8 @@ title: We'll Help You Benchmark content:

If you have a production use case, run a side-by-side benchmark on your own index to measure latency, RAM footprint, and throughput before you decide.

Our team of Solution Architects will help you test feasibility, latency, and cost.

No strings attached, no commitment. Performance that speaks for itself.

image: src: /img/elastic-lucene/astronaut-holding-cube.png -form: - fallback: - text: "There is a form here, but unfortunately it is blocked on your side. Please check your browser settings, or try with a different browser." - # browsers also block external forms, so check if content is available - # on the fallback page before showing the button - # link: / - # buttonText: Click Here +button: + link: /lp/lucene/calendar + text: Talk to Sales sitemapExclude: true --- diff --git a/qdrant-landing/content/elastic-lucene/elastic-lucene-hero.md b/qdrant-landing/content/elastic-lucene/elastic-lucene-hero.md index 51fc89003..14cf272d7 100644 --- a/qdrant-landing/content/elastic-lucene/elastic-lucene-hero.md +++ b/qdrant-landing/content/elastic-lucene/elastic-lucene-hero.md @@ -1,18 +1,18 @@ --- -title: Building production vector search shouldn’t be so hard. -description: "We asked our users building vector search why they moved to Qdrant from Elastic, Opensearch or another Lucene-based search engine. Here’s what they tell us:" -quotes: - - Unacceptably slow queries with vector search - - Endless indexing jobs - - Overspending on over-provisioned memory - - Brittle hybrid search -closingText: Lucene-based architectures just aren't built for scaling vector search. +title: Are your semantic search needs outgrowing Elastic and OpenSearch?
We can help. +description: "Qdrant is a Rust-native engine designed for vector + filter search from day one, so you get predictable p99 performance and simpler production ops. No GC pauses, no workaround-heavy architecture." +# quotes: +# - Unacceptably slow queries with vector search +# - Endless indexing jobs +# - Overspending on over-provisioned memory +# - Brittle hybrid search +# closingText: Lucene-based architectures just aren't built for scaling vector search. startFree: - text: Get Started - url: https://cloud.qdrant.io/signup + text: Book a Call + url: '#cta' learnMore: - text: Contact Us - url: /contact-us/ + text: Start Migrating + url: https://cloud.qdrant.io/signup image: src: /img/elastic-lucene/astronaut-broken-elastic.png alt: Retrieval Augmented Generation diff --git a/qdrant-landing/content/elastic-lucene/why-qdrant.md b/qdrant-landing/content/elastic-lucene/why-qdrant.md index deaee5b39..c98c50e60 100644 --- a/qdrant-landing/content/elastic-lucene/why-qdrant.md +++ b/qdrant-landing/content/elastic-lucene/why-qdrant.md @@ -1,7 +1,7 @@ --- -title: Why Teams Build Qdrant Alongside Elastic -description: You don't have to rip anything out. -descriptionSecond: Most teams start by adding Qdrant next to their existing stack to handle new dense or hybrid workloads … the ones Elastic can't keep up with. +title: Why Teams Replace Legacy Tools With Qdrant +description: Most teams find that the ongoing cost of Elastic (or other legacy tools) is hard to justify. It's expensive, hard to scale, and often requires specialized DevOps knowledge to manage. +descriptionSecond: Teams choose Qdrant because it allows them to build more performant vector search with less cost and complexity. You can leverage the same team you use for Postgres and easily migrate without rebuilding. testimonial: logo: src: /img/elastic-lucene/sprinklr.svg diff --git a/qdrant-landing/content/lp/_index.md b/qdrant-landing/content/lp/_index.md new file mode 100644 index 000000000..9120860a4 --- /dev/null +++ b/qdrant-landing/content/lp/_index.md @@ -0,0 +1,6 @@ +--- +title: Landing Pages +build: + list: never + render: never +--- diff --git a/qdrant-landing/content/lp/lucene/_index.md b/qdrant-landing/content/lp/lucene/_index.md new file mode 100644 index 000000000..135d97e09 --- /dev/null +++ b/qdrant-landing/content/lp/lucene/_index.md @@ -0,0 +1,6 @@ +--- +title: Elastic Lucene +build: + list: never + render: never +--- diff --git a/qdrant-landing/content/lp/lucene/calendar.md b/qdrant-landing/content/lp/lucene/calendar.md new file mode 100644 index 000000000..cc3f7a963 --- /dev/null +++ b/qdrant-landing/content/lp/lucene/calendar.md @@ -0,0 +1,9 @@ +--- +title: "Talk to Sales" +description: "Book a call with our team to discuss your Elastic/Lucene migration." +sitemapExclude: true +type: elastic-lucene +--- + +
+ \ No newline at end of file diff --git a/qdrant-landing/themes/qdrant-2024/assets/css/base.scss b/qdrant-landing/themes/qdrant-2024/assets/css/base.scss index 68ee4edc7..bceae309a 100644 --- a/qdrant-landing/themes/qdrant-2024/assets/css/base.scss +++ b/qdrant-landing/themes/qdrant-2024/assets/css/base.scss @@ -6,6 +6,8 @@ @import 'bootstrap-custom'; html { + scroll-behavior: smooth; + &::-webkit-scrollbar { width: 8px; height: 8px; diff --git a/qdrant-landing/themes/qdrant-2024/assets/css/partials/elastic-lucene/_calendar.scss b/qdrant-landing/themes/qdrant-2024/assets/css/partials/elastic-lucene/_calendar.scss new file mode 100644 index 000000000..6d009e681 --- /dev/null +++ b/qdrant-landing/themes/qdrant-2024/assets/css/partials/elastic-lucene/_calendar.scss @@ -0,0 +1,5 @@ +.elastic-lucene-calendar { + .meetings-iframe-container { + min-height: 600px; + } +} diff --git a/qdrant-landing/themes/qdrant-2024/assets/css/partials/elastic-lucene/_cta.scss b/qdrant-landing/themes/qdrant-2024/assets/css/partials/elastic-lucene/_cta.scss new file mode 100644 index 000000000..9bb036625 --- /dev/null +++ b/qdrant-landing/themes/qdrant-2024/assets/css/partials/elastic-lucene/_cta.scss @@ -0,0 +1,70 @@ +.elastic-lucene-cta { + scroll-margin-top: pxToRem(100); + padding-top: pxToRem(96); + padding-bottom: pxToRem(340); + background-color: $neutral-10; + overflow: hidden; + position: relative; + + @include media-breakpoint-up(lg) { + padding-bottom: pxToRem(96); + } + + &__overlay-bottom { + background-image: url('/img/blurred/blurred-light-4.png'); + transform: scale(-1, -1); + background-position: bottom right; + background-size: contain; + background-repeat: no-repeat; + width: 63rem; + height: 17rem; + } + + &__illustration { + position: absolute; + height: pxToRem(300); + left: 0; + width: 100%; + bottom: 0; + background-size: contain; + background-repeat: no-repeat; + background-position: center bottom; + + @include media-breakpoint-up(lg) { + height: 100%; + max-height: pxToRem(600); + width: 48%; + background-position: right bottom; + } + } + + &__content { + display: flex; + flex-direction: column; + gap: $spacer * 2.5; + } + + &__title { + font-size: $h4-font-size; + line-height: pxToRem(50); + font-weight: 700; + color: $neutral-98; + margin-bottom: 0; + } + + &__description p { + font-size: $font-size-md; + line-height: pxToRem(24); + font-weight: 500; + color: $neutral-70; + margin-bottom: $spacer * 0.5; + + &:last-of-type { + margin-bottom: 0; + } + } + + &__button { + align-self: flex-start; + } +} diff --git a/qdrant-landing/themes/qdrant-2024/assets/css/partials/elastic-lucene/_form.scss b/qdrant-landing/themes/qdrant-2024/assets/css/partials/elastic-lucene/_form.scss index 3fd66d0ec..e41d06980 100644 --- a/qdrant-landing/themes/qdrant-2024/assets/css/partials/elastic-lucene/_form.scss +++ b/qdrant-landing/themes/qdrant-2024/assets/css/partials/elastic-lucene/_form.scss @@ -1,69 +1,3 @@ -.elastic-lucene-form { - padding-top: pxToRem(96); - padding-bottom: pxToRem(340); - background-color: $neutral-10; - overflow: hidden; - position: relative; - - @include media-breakpoint-up(lg) { - padding-bottom: pxToRem(96); - } - - &__overlay-bottom { - background-image: url('/img/blurred/blurred-light-4.png'); - transform: scale(-1, -1); - background-position: bottom right; - background-size: contain; - background-repeat: no-repeat; - width: 63rem; - height: 17rem; - } - - &__illustration { - position: absolute; - height: pxToRem(300); - left: 0; - width: 100%; - bottom: 0; - background-size: contain; - background-repeat: no-repeat; - background-position: center bottom; - - @include media-breakpoint-up(lg) { - height: 100%; - max-height: pxToRem(600); - width: 48%; - background-position: right bottom; - } - } - - &__content { - display: flex; - flex-direction: column; - gap: $spacer * 2.5; - } - - &__title { - font-size: $h4-font-size; - line-height: pxToRem(50); - font-weight: 700; - color: $neutral-98; - margin-bottom: 0; - } - - &__description p { - font-size: $font-size-md; - line-height: pxToRem(24); - font-weight: 500; - color: $neutral-70; - margin-bottom: $spacer * 0.5; - - &:last-of-type { - margin-bottom: 0; - } - } -} - .luceneForm { label { color: $neutral-98; diff --git a/qdrant-landing/themes/qdrant-2024/assets/css/partials/elastic-lucene/_hero.scss b/qdrant-landing/themes/qdrant-2024/assets/css/partials/elastic-lucene/_hero.scss index 5c645bfb9..b4a28b217 100644 --- a/qdrant-landing/themes/qdrant-2024/assets/css/partials/elastic-lucene/_hero.scss +++ b/qdrant-landing/themes/qdrant-2024/assets/css/partials/elastic-lucene/_hero.scss @@ -43,16 +43,18 @@ &__title { font-size: $h3-font-size; - line-height: pxToRem(58); - font-weight: 700; - color: $neutral-98; + line-height: 1.1; + letter-spacing: -0.5px; + font-weight: 600; + color: $neutral-100; margin-bottom: 0; } &__description { - font-size: $font-size-l; - line-height: pxToRem(27); - font-weight: 500; + font-size: pxToRem(20); + line-height: 1.5; + letter-spacing: -0.2px; + font-weight: 400; color: $neutral-70; margin-bottom: 0; @@ -65,6 +67,22 @@ } } + &__buttons { + display: flex; + flex-wrap: wrap; + gap: $spacer * 1.5; + } + + &__button-outlined { + color: $neutral-100; + box-shadow: 0 0 0 1px $neutral-70; + + &:hover { + box-shadow: 0 0 0 2px $neutral-80; + color: $neutral-100; + } + } + &__quotes { position: relative; padding-left: $spacer * 2; diff --git a/qdrant-landing/themes/qdrant-2024/assets/css/partials/elastic-lucene/_index.scss b/qdrant-landing/themes/qdrant-2024/assets/css/partials/elastic-lucene/_index.scss index 3b1cc9774..0d68be1b0 100644 --- a/qdrant-landing/themes/qdrant-2024/assets/css/partials/elastic-lucene/_index.scss +++ b/qdrant-landing/themes/qdrant-2024/assets/css/partials/elastic-lucene/_index.scss @@ -3,4 +3,6 @@ @import 'hero'; @import 'outlined-card-group'; @import 'split-section'; +@import 'cta'; +@import 'calendar'; @import 'form'; diff --git a/qdrant-landing/themes/qdrant-2024/assets/js/index.js b/qdrant-landing/themes/qdrant-2024/assets/js/index.js index 56602b97c..38f87e77c 100644 --- a/qdrant-landing/themes/qdrant-2024/assets/js/index.js +++ b/qdrant-landing/themes/qdrant-2024/assets/js/index.js @@ -8,6 +8,8 @@ import { import { handleSegmentReady } from './segment-helpers'; import { addOneTrustPreferencesToLinks, registerAndCall } from './onetrust-helpers'; import TableOfContents from './table-of-content'; +import { DOCS_HEADER_OFFSET } from './constants'; +import { scrollIntoViewWithOffset } from './helpers'; persistUTMParams(); @@ -157,4 +159,22 @@ document.addEventListener('DOMContentLoaded', function () { el.addEventListener('click', toggleAccordion); }); + // scroll to anchors: + let offset = DOCS_HEADER_OFFSET; + + if (window.location.hash) { + scrollIntoViewWithOffset(window.location.hash.replace('#', ''), offset); + } + + let allLinks = document.querySelectorAll('a[href^="#"]'); + + allLinks.forEach((anchor) => { + const target = anchor.getAttribute('href'); + anchor.addEventListener('click', function (e) { + e.preventDefault(); + history.pushState(null, null, target); + scrollIntoViewWithOffset(target.replace('#', ''), offset); + }); + }); + }); diff --git a/qdrant-landing/themes/qdrant-2024/assets/js/vendor/anchor.js b/qdrant-landing/themes/qdrant-2024/assets/js/vendor/anchor.js index d9e6e31f6..c67601977 100644 --- a/qdrant-landing/themes/qdrant-2024/assets/js/vendor/anchor.js +++ b/qdrant-landing/themes/qdrant-2024/assets/js/vendor/anchor.js @@ -1,6 +1,4 @@ import AnchorJS from 'anchor-js'; -import { scrollIntoViewWithOffset } from '../helpers'; -import { DOCS_HEADER_OFFSET } from '../constants'; const anchors = new AnchorJS(); anchors.options.placement = 'left'; @@ -11,22 +9,4 @@ document.addEventListener('DOMContentLoaded', function (event) { if (/documentation|articles|course/.test(window.location?.pathname)) { anchors.add('.documentation-article > :is(h1, h2, h3, h4, h5, h6)'); } - - // scroll to anchors: - let offset = DOCS_HEADER_OFFSET; - - if (window.location.hash) { - scrollIntoViewWithOffset(window.location.hash.replace('#', ''), offset); - } - - let allLinks = document.querySelectorAll('a[href^="#"]'); - - allLinks.forEach((anchor) => { - const target = anchor.getAttribute('href'); - anchor.addEventListener('click', function (e) { - e.preventDefault(); - history.pushState(null, null, target); - scrollIntoViewWithOffset(target.replace('#', ''), offset); - }); - }); }); diff --git a/qdrant-landing/themes/qdrant-2024/layouts/elastic-lucene/list.html b/qdrant-landing/themes/qdrant-2024/layouts/elastic-lucene/list.html index 36a12b601..330ed3e83 100644 --- a/qdrant-landing/themes/qdrant-2024/layouts/elastic-lucene/list.html +++ b/qdrant-landing/themes/qdrant-2024/layouts/elastic-lucene/list.html @@ -4,6 +4,8 @@ {{ partial "elastic-lucene/hero" . }} {{ end }} + {{ partial "elastic-lucene/why" . }} + {{ $class := "rag-use-cases" }}
@@ -17,11 +19,9 @@ {{ partial "elastic-lucene/features" . }} - {{ partial "elastic-lucene/why" . }} - {{ partial "elastic-lucene/migration" . }} - {{ partial "elastic-lucene/form" . }} + {{ partial "elastic-lucene/cta-section.html" . }} {{ partial "elastic-lucene/lessons" . }} @@ -29,7 +29,4 @@ {{ partial "get-started-small" (dict "context" . "class" "get-started-small-database") }} {{ end }} - {{ with (.Site.GetPage "/elastic-lucene/elastic-lucene-form") }} - {{ partial "elastic-lucene/form-script" . }} - {{ end }} {{ end }} diff --git a/qdrant-landing/themes/qdrant-2024/layouts/elastic-lucene/single.html b/qdrant-landing/themes/qdrant-2024/layouts/elastic-lucene/single.html index 806bcec80..d2aaea120 100644 --- a/qdrant-landing/themes/qdrant-2024/layouts/elastic-lucene/single.html +++ b/qdrant-landing/themes/qdrant-2024/layouts/elastic-lucene/single.html @@ -1 +1,23 @@ -{{ define "main" }}{{ end }} +{{ define "main" }} + {{ partial "site-header" . }} +
+
+ {{ if or (eq .File.BaseFileName "calendar") (eq .Type "elastic-lucene") }} +
+

{{ .Title }}

+
+
+
+ {{ .Content }} +
+
+ {{ else }} +
+
+ {{ partial "article-content" . }} +
+
+ {{ end }} +
+
+{{ end }} diff --git a/qdrant-landing/themes/qdrant-2024/layouts/partials/elastic-lucene/cta-section.html b/qdrant-landing/themes/qdrant-2024/layouts/partials/elastic-lucene/cta-section.html new file mode 100644 index 000000000..24282b6de --- /dev/null +++ b/qdrant-landing/themes/qdrant-2024/layouts/partials/elastic-lucene/cta-section.html @@ -0,0 +1,17 @@ +{{ with (.Site.GetPage "/elastic-lucene/elastic-lucene-cta") }} +
+
+
+
+
+

{{ .Params.title }}

+
+ {{ .Params.content | safeHTML }} +
+ {{ .Params.button.text }} +
+
+
+ {{ partial "top-and-bottom-overlay" (dict "context" . "class" "elastic-lucene-cta") }} +
+{{ end }} diff --git a/qdrant-landing/themes/qdrant-2024/layouts/partials/elastic-lucene/features.html b/qdrant-landing/themes/qdrant-2024/layouts/partials/elastic-lucene/features.html index a7015e994..cf8eb983e 100644 --- a/qdrant-landing/themes/qdrant-2024/layouts/partials/elastic-lucene/features.html +++ b/qdrant-landing/themes/qdrant-2024/layouts/partials/elastic-lucene/features.html @@ -9,7 +9,7 @@ {{ $feature.icon.alt }}

{{ $feature.description }}

- {{ $feature.link.text }} + {{ $feature.link.text }}

diff --git a/qdrant-landing/themes/qdrant-2024/layouts/partials/elastic-lucene/form.html b/qdrant-landing/themes/qdrant-2024/layouts/partials/elastic-lucene/form.html deleted file mode 100644 index d03fab6f2..000000000 --- a/qdrant-landing/themes/qdrant-2024/layouts/partials/elastic-lucene/form.html +++ /dev/null @@ -1,17 +0,0 @@ -{{ with (.Site.GetPage "/elastic-lucene/elastic-lucene-form") }} -
-
-
-
-
-

{{ .Params.title }}

-
- {{ .Params.content | safeHTML }} -
-
-
-
-
- {{ partial "top-and-bottom-overlay" (dict "context" . "class" "elastic-lucene-form") }} -
-{{ end }} diff --git a/qdrant-landing/themes/qdrant-2024/layouts/partials/elastic-lucene/hero.html b/qdrant-landing/themes/qdrant-2024/layouts/partials/elastic-lucene/hero.html index f6412aee6..fc735e4a1 100644 --- a/qdrant-landing/themes/qdrant-2024/layouts/partials/elastic-lucene/hero.html +++ b/qdrant-landing/themes/qdrant-2024/layouts/partials/elastic-lucene/hero.html @@ -3,8 +3,15 @@
-

{{ .Params.title }}

+

{{ .Params.title | safeHTML }}

{{ .Params.description }}

+ {{ if and .Params.startFree .Params.learnMore }} + + {{ end }} + {{ if .Params.quotes }}
-

{{ .Params.closingText }}

+ {{ end }} + {{ if .Params.closingText }} +

{{ .Params.closingText }}

+ {{ end }}
diff --git a/qdrant-landing/themes/qdrant-2024/layouts/partials/elastic-lucene/why.html b/qdrant-landing/themes/qdrant-2024/layouts/partials/elastic-lucene/why.html index e963baa28..0d18fa05e 100644 --- a/qdrant-landing/themes/qdrant-2024/layouts/partials/elastic-lucene/why.html +++ b/qdrant-landing/themes/qdrant-2024/layouts/partials/elastic-lucene/why.html @@ -1,5 +1,5 @@ {{ with (.Site.GetPage "/elastic-lucene/why-qdrant") }} -
+
diff --git a/qdrant-landing/themes/qdrant-2024/static/img/elastic-lucene/sprinklr.svg b/qdrant-landing/themes/qdrant-2024/static/img/elastic-lucene/sprinklr.svg index e02c0999d..2a16eb8a1 100644 --- a/qdrant-landing/themes/qdrant-2024/static/img/elastic-lucene/sprinklr.svg +++ b/qdrant-landing/themes/qdrant-2024/static/img/elastic-lucene/sprinklr.svg @@ -1,42 +1,4 @@ - - - - - - - - - - - - + + + \ No newline at end of file