diff --git a/qdrant-landing/content/documentation/guides-tab.md b/qdrant-landing/content/documentation/guides-tab.md index c1a9ad7dd..412305e9d 100644 --- a/qdrant-landing/content/documentation/guides-tab.md +++ b/qdrant-landing/content/documentation/guides-tab.md @@ -12,8 +12,8 @@ build: render: always content: - partial: documentation/banners/banner-a - title: Build Better Search - description: Practical guidance for evaluating and tuning search, choosing models, and planning how your application grows. + title: Qdrant Guides + description: Practical guidance for search quality, embedding models, multitenancy, bulk uploads, and memory use. - partial: documentation/recent-publications kind: guides - partial: documentation/guides/topics diff --git a/qdrant-landing/content/documentation/production-operations/_index.md b/qdrant-landing/content/documentation/production-operations/_index.md index 9a1404eee..e26ff129c 100644 --- a/qdrant-landing/content/documentation/production-operations/_index.md +++ b/qdrant-landing/content/documentation/production-operations/_index.md @@ -21,13 +21,6 @@ content: - partial: documentation/banners/banner-a title: Production & Operations description: Plan multitenancy, bulk uploads, and memory placement as your Qdrant application and vector collection grow. - linkDescription: Choose the pattern that matches your workload and its constraints. - cloudButton: - text: Serve Many Tenants - url: /documentation/production-operations/multitenant-search/ - localButton: - text: Plan a Data Import - url: /documentation/production-operations/bulk-data-import/ - partial: documentation/guides/guide-cards section: /documentation/production-operations/ worked_examples: diff --git a/qdrant-landing/content/documentation/search-evaluation/_index.md b/qdrant-landing/content/documentation/search-evaluation/_index.md index 795391fde..d082bf1a4 100644 --- a/qdrant-landing/content/documentation/search-evaluation/_index.md +++ b/qdrant-landing/content/documentation/search-evaluation/_index.md @@ -23,13 +23,6 @@ content: - partial: documentation/banners/banner-a title: Search Evaluation description: Build an evaluation baseline and measure whether your search system produces useful results. - linkDescription: Choose the evaluation method that matches the result you need to judge. - cloudButton: - text: Measure Retrieval Relevance - url: /documentation/search-evaluation/retrieval-relevance/ - localButton: - text: Evaluate Pipeline Output - url: /documentation/search-evaluation/pipeline-output-quality/ - partial: documentation/guides/guide-cards section: /documentation/search-evaluation/ --- diff --git a/qdrant-landing/content/documentation/search-patterns/_index.md b/qdrant-landing/content/documentation/search-patterns/_index.md index 2e0999cf2..da4dbc810 100644 --- a/qdrant-landing/content/documentation/search-patterns/_index.md +++ b/qdrant-landing/content/documentation/search-patterns/_index.md @@ -16,13 +16,6 @@ content: - partial: documentation/banners/banner-a title: Search Patterns description: Choose how your search system represents data, handles questions, and narrows results. - linkDescription: Choose the pattern that fits your application's search needs. - cloudButton: - text: Choose an Embedding Model - url: /documentation/search-patterns/choose-embedding-model/ - localButton: - text: Plan Your Filters - url: /documentation/search-patterns/vector-search-filtering/ - partial: documentation/guides/guide-cards section: /documentation/search-patterns/ --- diff --git a/qdrant-landing/content/documentation/search-tuning/_index.md b/qdrant-landing/content/documentation/search-tuning/_index.md index 99e508c38..415bccaef 100644 --- a/qdrant-landing/content/documentation/search-tuning/_index.md +++ b/qdrant-landing/content/documentation/search-tuning/_index.md @@ -16,13 +16,6 @@ content: - partial: documentation/banners/banner-a title: Search Tuning description: Use evaluation results to decide what to change in your retrieval pipeline. - linkDescription: Follow the tuning series in order, or open the part that matches your next decision. - cloudButton: - text: Start the Tuning Series - url: /documentation/search-tuning/hybrid-search/ - localButton: - text: Check Before Tuning - url: /documentation/search-tuning/before-tuning-a-qdrant-collection/ - partial: documentation/guides/guide-cards section: /documentation/search-tuning/ guide_series_title: Tune Your Retrieval Pipeline diff --git a/qdrant-landing/themes/qdrant-2024/assets/css/partials/documentation/_learning.scss b/qdrant-landing/themes/qdrant-2024/assets/css/partials/documentation/_learning.scss index 18340acd4..e71bbe78f 100644 --- a/qdrant-landing/themes/qdrant-2024/assets/css/partials/documentation/_learning.scss +++ b/qdrant-landing/themes/qdrant-2024/assets/css/partials/documentation/_learning.scss @@ -1,6 +1,7 @@ @use '../../helpers/functions' as *; -.example-library { +.example-library, +.guide-directory { scroll-margin-top: $spacer * 7; &__filters { @@ -41,6 +42,8 @@ } } + [hidden] { display: none !important; } + .docs-card__title a { color: inherit; } diff --git a/qdrant-landing/themes/qdrant-2024/assets/js/guide-directory.js b/qdrant-landing/themes/qdrant-2024/assets/js/guide-directory.js new file mode 100644 index 000000000..63c7b22de --- /dev/null +++ b/qdrant-landing/themes/qdrant-2024/assets/js/guide-directory.js @@ -0,0 +1,46 @@ +const directory = document.querySelector('.guide-directory'); +if (directory) { + const form = directory.querySelector('form'); + const query = form.elements.namedItem('q'); + const guides = [...directory.querySelectorAll('[data-guide]')]; + const topics = [...directory.querySelectorAll('[data-guide-topic]')]; + const count = directory.querySelector('[data-guide-count]'); + const empty = directory.querySelector('[data-guide-empty]'); + + function filter(updateURL = true) { + const terms = query.value.toLowerCase().trim().split(/\s+/).filter(Boolean); + let visible = 0; + guides.forEach(guide => { + guide.hidden = !terms.every(term => guide.dataset.search.includes(term)); + if (!guide.hidden) visible += 1; + }); + topics.forEach(topic => { + topic.hidden = !topic.querySelector('[data-guide]:not([hidden])'); + }); + count.textContent = `${visible} ${visible === 1 ? 'guide' : 'guides'}`; + empty.hidden = visible !== 0; + if (updateURL) { + const url = new URL(window.location.href); + if (query.value.trim()) url.searchParams.set('q', query.value.trim()); + else url.searchParams.delete('q'); + window.history.replaceState(null, '', url); + } + } + + function readURL() { + query.value = new URLSearchParams(window.location.search).get('q') || ''; + filter(false); + } + + form.hidden = count.hidden = false; + readURL(); + form.addEventListener('submit', event => { event.preventDefault(); filter(); }); + query.addEventListener('input', () => filter()); + form.addEventListener('reset', event => { + event.preventDefault(); + query.value = ''; + filter(); + query.focus(); + }); + window.addEventListener('popstate', readURL); +} diff --git a/qdrant-landing/themes/qdrant-2024/layouts/partials/documentation/guides/topics.html b/qdrant-landing/themes/qdrant-2024/layouts/partials/documentation/guides/topics.html index f651b2968..db9bf912d 100644 --- a/qdrant-landing/themes/qdrant-2024/layouts/partials/documentation/guides/topics.html +++ b/qdrant-landing/themes/qdrant-2024/layouts/partials/documentation/guides/topics.html @@ -1,9 +1,18 @@ -
-

Browse Guides by Topic

+
+

Browse Guides by Topic

Open a guide directly, or explore a topic for related examples and references.

+ + +