diff --git a/qdrant-landing/content/articles/faq-question-answering.md b/qdrant-landing/content/articles/faq-question-answering.md index ce1f0c19d..4fafd5832 100644 --- a/qdrant-landing/content/articles/faq-question-answering.md +++ b/qdrant-landing/content/articles/faq-question-answering.md @@ -55,7 +55,7 @@ As embeddings are vectors, one can apply a simple function to calculate the simi So with similarity learning, all we need to do is provide pairs of correct questions and answers. And then, the model will learn to distinguish proper answers by the similarity of embeddings. ->If you want to learn more about similarity learning and applications, check out this [article](/documentation/tutorials-search-engineering/neural-search/) which might be an asset. +>If you want to learn more about similarity learning and applications, check out this [article](/documentation/tutorials-develop/neural-search/) which might be an asset. ## Let's build diff --git a/qdrant-landing/content/articles/vector-search-resource-optimization.md b/qdrant-landing/content/articles/vector-search-resource-optimization.md index c4a38cb9f..0b20ed337 100644 --- a/qdrant-landing/content/articles/vector-search-resource-optimization.md +++ b/qdrant-landing/content/articles/vector-search-resource-optimization.md @@ -494,7 +494,7 @@ client.query_points( ) ``` ___ -Learn more about [**Reranking**](/documentation/tutorials-search-engineering/reranking-hybrid-search/#rerank). +Learn more about [**Reranking**](/documentation/tutorials-basics/reranking-hybrid-search/#rerank). --- diff --git a/qdrant-landing/content/articles/what-are-embeddings.md b/qdrant-landing/content/articles/what-are-embeddings.md index d9ae612ae..21b97e3a4 100644 --- a/qdrant-landing/content/articles/what-are-embeddings.md +++ b/qdrant-landing/content/articles/what-are-embeddings.md @@ -140,7 +140,7 @@ We plan to go deeper into selecting the best model based on performance, cost, i ## Create a neural search service with Fastmbed -Now that you’re familiar with the core concepts around vector embeddings, how about start building your own [Neural Search Service](/documentation/tutorials-search-engineering/neural-search/)? +Now that you’re familiar with the core concepts around vector embeddings, how about start building your own [Neural Search Service](/documentation/tutorials-develop/neural-search/)? Tutorial guides you through a practical application of how to use Qdrant for document management based on descriptions of companies from [startups-list.com](https://www.startups-list.com/). From embedding data, integrating it with Qdrant's vector database, constructing a search API, and finally deploying your solution with FastAPI. diff --git a/qdrant-landing/content/documentation/ecosystem-tab.md b/qdrant-landing/content/documentation/ecosystem-tab.md index 197288a66..2d18c62ae 100644 --- a/qdrant-landing/content/documentation/ecosystem-tab.md +++ b/qdrant-landing/content/documentation/ecosystem-tab.md @@ -28,7 +28,7 @@ content: title: Search description: Build a simple neural search service with Qdrant and FastEmbed. Learn how to upload data, create indexes, and run search queries. link: - url: /documentation/tutorials-search-engineering/hybrid-search-fastembed/ + url: /documentation/tutorials-develop/hybrid-search-fastembed/ text: Read More - id: 2 image: diff --git a/qdrant-landing/content/documentation/examples/rag-chatbot-red-hat-openshift-haystack.md b/qdrant-landing/content/documentation/examples/rag-chatbot-red-hat-openshift-haystack.md index a7e97fef6..a05e5ba55 100644 --- a/qdrant-landing/content/documentation/examples/rag-chatbot-red-hat-openshift-haystack.md +++ b/qdrant-landing/content/documentation/examples/rag-chatbot-red-hat-openshift-haystack.md @@ -460,4 +460,4 @@ The response should be similar to the one we got in the Python before: - [Haystack's documentation](https://docs.haystack.deepset.ai/docs/kubernetes) describes [how to deploy the Hayhooks service in a Kubernetes environment](https://docs.haystack.deepset.ai/docs/kubernetes), so you can easily move it to your own OpenShift infrastructure. -- If you are just getting started and need more guidance on Qdrant, read the [quickstart](/documentation/quickstart/) or try out our [beginner tutorial](/documentation/tutorials-search-engineering/neural-search/). \ No newline at end of file +- If you are just getting started and need more guidance on Qdrant, read the [quickstart](/documentation/quickstart/) or try out our [beginner tutorial](/documentation/tutorials-develop/neural-search/). \ No newline at end of file diff --git a/qdrant-landing/content/documentation/headless/content/tutorials/basic.md b/qdrant-landing/content/documentation/headless/content/tutorials/basic.md index b24567c0b..53cdf4ca0 100644 --- a/qdrant-landing/content/documentation/headless/content/tutorials/basic.md +++ b/qdrant-landing/content/documentation/headless/content/tutorials/basic.md @@ -1,4 +1,7 @@ | Tutorial | Objective | Stack | Time | Level | | :--- | :--- | :--- | :--- | :--- | -| [Qdrant Local Quickstart](/documentation/quickstart/) | Basic CRUD operations and local deployment. | Python | 10m | Beginner | -| [Semantic Search 101](/documentation/tutorials-basics/search-beginners/) | Build a search engine for science fiction books. | Python | 5m | Beginner | \ No newline at end of file +| [Qdrant Local Quickstart](/documentation/quickstart/) | Basic CRUD operations and local deployment. | Any | 10m | Beginner | +| [Qdrant Cloud Quickstart](/documentation/cloud-quickstart/) | Basic CRUD operations on Qdrant Cloud. | Any | 10m | Beginner | +| [Semantic Search 101](/documentation/tutorials-basics/search-beginners/) | Build a search engine for science fiction books. | Any | 10m | Beginner | +| [Hybrid Search](/documentation/tutorials-basics/cloud-inference-hybrid-search/) | Get started with hybrid search. | Any | 30m | Beginner | +| [Hybrid Search with Reranking](/documentation/tutorials-basics/reranking-hybrid-search/) | Rerank hybrid search results for improved accuracy. | Any | 40m | Intermediate | \ No newline at end of file diff --git a/qdrant-landing/content/documentation/headless/content/tutorials/develop.md b/qdrant-landing/content/documentation/headless/content/tutorials/develop.md index c388daf3c..2301d8e0e 100644 --- a/qdrant-landing/content/documentation/headless/content/tutorials/develop.md +++ b/qdrant-landing/content/documentation/headless/content/tutorials/develop.md @@ -1,4 +1,7 @@ | Tutorial | Objective | Stack | Time | Level | | :--- | :--- | :--- | :--- | :--- | +| [Build a Semantic Search API](/documentation/tutorials-develop/neural-search/) | Deploy a search service for company descriptions. | FastAPI | 30m | Beginner | +| [Build a Hybrid Search API](/documentation/tutorials-develop/hybrid-search-fastembed/) | Combine dense and sparse search. | FastAPI | 20m | Beginner | | [Bulk Operations](/documentation/tutorials-develop/bulk-upload/) | High-scale ingestion approaches. | Python | 20m | Intermediate | -| [Async API](/documentation/tutorials-develop/async-api/) | Use Asynchronous programming for efficiency. | Python | 25m | Intermediate | \ No newline at end of file +| [Async API](/documentation/tutorials-develop/async-api/) | Use Asynchronous programming for efficiency. | Python | 25m | Intermediate | +| [Semantic Search for Code](/documentation/tutorials-develop/code-search/) | Navigate codebases using vector similarity. | Python | 45m | Intermediate | \ No newline at end of file diff --git a/qdrant-landing/content/documentation/headless/content/tutorials/search-engineering.md b/qdrant-landing/content/documentation/headless/content/tutorials/search-engineering.md index 1eae679ad..aeafa9d0e 100644 --- a/qdrant-landing/content/documentation/headless/content/tutorials/search-engineering.md +++ b/qdrant-landing/content/documentation/headless/content/tutorials/search-engineering.md @@ -1,13 +1,9 @@ | Tutorial | Objective | Stack | Time | Level | | :--- | :--- | :--- | :--- | :--- | -| [Semantic Search Intro](/documentation/tutorials-search-engineering/neural-search/) | Deploy a search service for company descriptions. | FastAPI | 30m | Beginner | -| [Hybrid Search with FastEmbed](/documentation/tutorials-search-engineering/hybrid-search-fastembed/) | Combine dense and sparse search. | FastAPI | 20m | Beginner | | [Relevance Feedback](/documentation/tutorials-search-engineering/using-relevance-feedback/) | Relevance Feedback Retrieval in Qdrant | Python | 30m | Intermediate | | [Collaborative Filtering](/documentation/tutorials-search-engineering/collaborative-filtering/) | Collaborative filtering using sparse embeddings. | Python | 45m | Intermediate | | [Multivector Document Retrieval](/documentation/tutorials-search-engineering/pdf-retrieval-at-scale/) | PDF RAG using ColPali and embedding pooling. | Python | 30m | Intermediate | | [Measuring ANN Recall](/documentation/tutorials-search-engineering/ann-recall/) | Measure ANN recall with the Web UI and tune HNSW parameters. | Web UI | 15m | Beginner | -| [Hybrid Search with Reranking](/documentation/tutorials-search-engineering/reranking-hybrid-search/) | Implement late interaction and sparse reranking. | Python | 40m | Intermediate | -| [Semantic Search for Code](/documentation/tutorials-search-engineering/code-search/) | Navigate codebases using vector similarity. | Python | 45m | Intermediate | | [Multivectors and Late Interaction](/documentation/tutorials-search-engineering/using-multivector-representations/) | Effective use of multivector representations. | Python | 30m | Intermediate | | [Multi-Representation Search](/documentation/tutorials-search-engineering/multi-representation-search/) | Fuse title, summary, chunk, and tag vectors with named vectors and the Query API. | Python | 45m | Intermediate | | [Static Embeddings](/documentation/tutorials-search-engineering/static-embeddings/) | Evaluate the utility of static embeddings. | Python | 20m | Intermediate | \ No newline at end of file diff --git a/qdrant-landing/content/documentation/search/text-search.md b/qdrant-landing/content/documentation/search/text-search.md index fd56ebbc5..502d9de25 100644 --- a/qdrant-landing/content/documentation/search/text-search.md +++ b/qdrant-landing/content/documentation/search/text-search.md @@ -299,7 +299,7 @@ You are not limited to prefetching just two queries. Examples include, but are n - Fuse multiple lexical queries across the `title`, `author`, and `isbn` fields alongside a semantic query to achieve a comprehensive search across all data. - Prefetch using sparse or dense vectors and/or filters, and [rescore with dense vectors](/documentation/search/hybrid-queries/#multi-stage-queries). -- [Prefetch with dense and sparse vectors, and rerank using late interaction embeddings](/documentation/tutorials-search-engineering/reranking-hybrid-search/?q=late+interaction). +- [Prefetch with dense and sparse vectors, and rerank using late interaction embeddings](/documentation/tutorials-basics/reranking-hybrid-search/?q=late+interaction). ## Conclusion diff --git a/qdrant-landing/content/documentation/tutorials-and-examples/cloud-inference-hybrid-search.md b/qdrant-landing/content/documentation/tutorials-basics/cloud-inference-hybrid-search.md similarity index 90% rename from qdrant-landing/content/documentation/tutorials-and-examples/cloud-inference-hybrid-search.md rename to qdrant-landing/content/documentation/tutorials-basics/cloud-inference-hybrid-search.md index 3a4187e38..d9b49ef96 100644 --- a/qdrant-landing/content/documentation/tutorials-and-examples/cloud-inference-hybrid-search.md +++ b/qdrant-landing/content/documentation/tutorials-basics/cloud-inference-hybrid-search.md @@ -1,9 +1,10 @@ --- -title: Cloud Inference Hybrid Search +title: Hybrid Search short_description: "Step-by-step tutorial: build hybrid search in Qdrant combining dense semantic and sparse keyword retrieval with reciprocal rank fusion." description: "Build a hybrid search engine on Qdrant Cloud that fuses dense embeddings with BM25 sparse vectors using reciprocal rank fusion for higher-precision retrieval." -hideInSidebar: true -weight: 35 +weight: 40 +aliases: + - /documentation/tutorials-and-examples/cloud-inference-hybrid-search/ --- # Hybrid Search Using Qdrant Cloud Inference @@ -12,7 +13,7 @@ weight: 35 In this tutorial, we'll walkthrough building a **hybrid semantic search engine** using Qdrant Cloud's built-in [inference](/documentation/cloud/inference/) capabilities. You'll learn how to: - Automatically embed your data using [cloud Inference](/documentation/cloud/inference/) without needing to run local models, -- Combine dense semantic embeddings with [sparse BM25 keywords](https://qdrant.tech/documentation/tutorials-search-engineering/reranking-hybrid-search/), and +- Combine dense semantic embeddings with [sparse BM25 keywords](/documentation/tutorials-basics/reranking-hybrid-search/), and - Perform hybrid search using [Reciprocal Rank Fusion (RRF)](/documentation/search/hybrid-queries/) to retrieve the most relevant results. ## Initialize the Client @@ -53,4 +54,8 @@ The semantic search engine will retrieve the most similar result in order of rel version=0, score=14.545895, payload={'text': "Relapsing Polychondritis is a rare..."}, vector=None, shard_key=None, order_value=None)] -``` \ No newline at end of file +``` + +## Next Steps + +Hybrid search result quality can be improved by reranking the results using a more expensive but higher quality model. Learn more in the [hybrid search with reranking tutorial](/documentation/tutorials-basics/reranking-hybrid-search/). \ No newline at end of file diff --git a/qdrant-landing/content/documentation/tutorials-search-engineering/reranking-hybrid-search.md b/qdrant-landing/content/documentation/tutorials-basics/reranking-hybrid-search.md similarity index 99% rename from qdrant-landing/content/documentation/tutorials-search-engineering/reranking-hybrid-search.md rename to qdrant-landing/content/documentation/tutorials-basics/reranking-hybrid-search.md index a1e880e2d..aed36667c 100644 --- a/qdrant-landing/content/documentation/tutorials-search-engineering/reranking-hybrid-search.md +++ b/qdrant-landing/content/documentation/tutorials-basics/reranking-hybrid-search.md @@ -2,10 +2,11 @@ title: Hybrid Search with Reranking short_description: "Combine dense, sparse, and late-interaction embeddings in Qdrant to build hybrid search with reranking for high-precision results." description: "Step-by-step tutorial: build hybrid search in Qdrant combining dense, sparse, and late-interaction reranking for higher precision on large corpora." -weight: 2 +weight: 60 aliases: - /documentation/search-precision/reranking-hybrid-search/ - /documentation/advanced-tutorials/reranking-hybrid-search/ + - /documentation/tutorials-search-engineering/reranking-hybrid-search/ --- # Qdrant Hybrid Search with Reranking diff --git a/qdrant-landing/content/documentation/tutorials-basics/search-beginners-local.md b/qdrant-landing/content/documentation/tutorials-basics/search-beginners-local.md index 20f39609a..4b9ffd2da 100644 --- a/qdrant-landing/content/documentation/tutorials-basics/search-beginners-local.md +++ b/qdrant-landing/content/documentation/tutorials-basics/search-beginners-local.md @@ -249,4 +249,4 @@ The query has been narrowed down to one result from 2008. ## Next Steps -Congratulations, you have just created your very first search engine! Trust us, the rest of Qdrant is not that complicated, either. For your next tutorial, try [building your own hybrid search service](/documentation/tutorials-search-engineering/hybrid-search-fastembed/) or take the free [Qdrant Essentials course](/course/essentials/). +Congratulations, you have just created your very first search engine! Trust us, the rest of Qdrant is not that complicated, either. For your next tutorial, try [building your own hybrid search service](/documentation/tutorials-develop/hybrid-search-fastembed/) or take the free [Qdrant Essentials course](/course/essentials/). diff --git a/qdrant-landing/content/documentation/tutorials-basics/search-beginners.md b/qdrant-landing/content/documentation/tutorials-basics/search-beginners.md index a4bb92842..909c66182 100644 --- a/qdrant-landing/content/documentation/tutorials-basics/search-beginners.md +++ b/qdrant-landing/content/documentation/tutorials-basics/search-beginners.md @@ -2,7 +2,7 @@ title: Semantic Search 101 short_description: "Run your first semantic search on Qdrant Cloud: create a cluster, upload a small dataset, and query by meaning instead of keywords." description: "Step-by-step tutorial: spin up a Qdrant Cloud cluster, create a collection, upload sample data, and run semantic vector search queries in five minutes." -weight: 4 +weight: 10 aliases: - /documentation/tutorials/mighty.md/ - /documentation/tutorials/search-beginners/ @@ -113,4 +113,4 @@ The results have been narrowed down to one result from 2008: ## Next Steps -Congratulations, you have just created your very first search engine! Trust us, the rest of Qdrant is not that complicated, either. For your next tutorial, try [building your own hybrid search service](/documentation/tutorials-search-engineering/hybrid-search-fastembed/) or take the free [Qdrant Essentials course](/course/essentials/). +Congratulations, you have just created your very first search engine! Trust us, the rest of Qdrant is not that complicated, either. For your next tutorial, try [building your own hybrid search service](/documentation/tutorials-basics/cloud-inference-hybrid-search/) or take the free [Qdrant Essentials course](/course/essentials/). diff --git a/qdrant-landing/content/documentation/tutorials-search-engineering/code-search.md b/qdrant-landing/content/documentation/tutorials-develop/code-search.md similarity index 99% rename from qdrant-landing/content/documentation/tutorials-search-engineering/code-search.md rename to qdrant-landing/content/documentation/tutorials-develop/code-search.md index 0e926d307..73c2baf81 100644 --- a/qdrant-landing/content/documentation/tutorials-search-engineering/code-search.md +++ b/qdrant-landing/content/documentation/tutorials-develop/code-search.md @@ -5,7 +5,8 @@ description: "Tutorial: build a semantic code search engine with Qdrant by combi aliases: - /documentation/tutorials/code-search/ - /documentation/advanced-tutorials/code-search/ -weight: 2 + - /documentation/tutorials-search-engineering/code-search/ +weight: 20 --- # Semantic Search for Code with Qdrant diff --git a/qdrant-landing/content/documentation/tutorials-search-engineering/hybrid-search-fastembed.md b/qdrant-landing/content/documentation/tutorials-develop/hybrid-search-fastembed.md similarity index 98% rename from qdrant-landing/content/documentation/tutorials-search-engineering/hybrid-search-fastembed.md rename to qdrant-landing/content/documentation/tutorials-develop/hybrid-search-fastembed.md index f70555a93..f1a3dde87 100644 --- a/qdrant-landing/content/documentation/tutorials-search-engineering/hybrid-search-fastembed.md +++ b/qdrant-landing/content/documentation/tutorials-develop/hybrid-search-fastembed.md @@ -1,14 +1,15 @@ --- -title: Hybrid Search with FastEmbed +title: Build a Hybrid Search API short_description: "Build a hybrid search service with Qdrant and FastEmbed by combining dense and sparse embeddings behind a FastAPI endpoint." description: "Tutorial: build a hybrid search API with Qdrant and FastEmbed that fuses dense and sparse embeddings, served through a FastAPI application." aliases: - /documentation/tutorials/hybrid-search-fastembed/ - /documentation/beginner-tutorials/hybrid-search-fastembed/ -weight: 3 + - /documentation/tutorials-search-engineering/hybrid-search-fastembed/ +weight: 50 --- -# Hybrid Search with Qdrant's FastEmbed +# Build a Search API with Qdrant's FastEmbed | Time: 20 min | Level: Beginner | Output: [GitHub](https://github.com/qdrant/qdrant_demo/) | | --- | ----------- | ----------- |----------- | diff --git a/qdrant-landing/content/documentation/tutorials-search-engineering/neural-search.md b/qdrant-landing/content/documentation/tutorials-develop/neural-search.md similarity index 98% rename from qdrant-landing/content/documentation/tutorials-search-engineering/neural-search.md rename to qdrant-landing/content/documentation/tutorials-develop/neural-search.md index 33b323370..4bfa67b99 100644 --- a/qdrant-landing/content/documentation/tutorials-search-engineering/neural-search.md +++ b/qdrant-landing/content/documentation/tutorials-develop/neural-search.md @@ -1,14 +1,15 @@ --- -title: Semantic Search Basics +title: Build a Semantic Search API short_description: "Build a neural semantic search service on Qdrant using sentence-transformer embeddings and a FastAPI search endpoint." description: "Tutorial: build a neural search service that encodes text with sentence transformers, indexes vectors in Qdrant, and serves results through FastAPI." aliases: - /documentation/tutorials/neural-search/ - /documentation/beginner-tutorials/neural-search/ -weight: 2 + - /documentation/tutorials-search-engineering/neural-search/ +weight: 30 --- -# Semantic Search Basics with Qdrant +# Build a Semantic Search API with Qdrant | Time: 30 min | Level: Beginner | Output: [GitHub](https://github.com/qdrant/qdrant_demo/tree/sentense-transformers) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1kPktoudAP8Tu8n8l-iVMOQhVmHkWV_L9?usp=sharing) | | --- | ----------- | ----------- |----------- | @@ -19,7 +20,7 @@ A neural search service uses artificial neural networks to improve the accuracy diff --git a/qdrant-landing/content/documentation/tutorials-lp-overview.md b/qdrant-landing/content/documentation/tutorials-lp-overview.md index 1e2ea4599..5d3457377 100644 --- a/qdrant-landing/content/documentation/tutorials-lp-overview.md +++ b/qdrant-landing/content/documentation/tutorials-lp-overview.md @@ -66,8 +66,8 @@ partition: develop | Tutorial | Objective | Stack | Time | Level | | :--- | :--- | :--- | :--- | :--- | -| [Hybrid Search with FastEmbed](/documentation/tutorials-search-engineering/hybrid-search-fastembed/) | Combine dense and sparse search for startups. | FastAPI | 20m | Beginner | -| [Semantic Search Basics](/documentation/tutorials-search-engineering/neural-search/) | Deploy a search service for company descriptions. | FastAPI | 30m | Beginner | +| [Hybrid Search with FastEmbed](/documentation/tutorials-develop/hybrid-search-fastembed/) | Combine dense and sparse search for startups. | FastAPI | 20m | Beginner | +| [Semantic Search Basics](/documentation/tutorials-develop/neural-search/) | Deploy a search service for company descriptions. | FastAPI | 30m | Beginner | | [Collaborative Filtering](/documentation/tutorials-search-engineering/collaborative-filtering/) | Collaborative filtering using sparse embeddings. | Python | 45m | Intermediate | | [Multivector Document Retrieval](/documentation/tutorials-search-engineering/pdf-retrieval-at-scale/) | PDF RAG using ColPali and embedding pooling. | Python | 30m | Intermediate | | [Measuring ANN Recall](/documentation/tutorials-search-engineering/ann-recall/) | Measure ANN recall with the Web UI and tune HNSW parameters. | Web UI | 15m | Beginner | diff --git a/qdrant-landing/content/headless/main/why-qdrant.md b/qdrant-landing/content/headless/main/why-qdrant.md index f4dcb7fde..26dd24768 100644 --- a/qdrant-landing/content/headless/main/why-qdrant.md +++ b/qdrant-landing/content/headless/main/why-qdrant.md @@ -51,7 +51,7 @@ featureCards: alt: Reranking illustration link: text: See Documentation - url: /documentation/tutorials-search-engineering/reranking-hybrid-search/ + url: /documentation/tutorials-basics/reranking-hybrid-search/ size: small sitemapExclude: true --- diff --git a/qdrant-landing/static/_redirects b/qdrant-landing/static/_redirects index 70ce014fd..c9e7e32b3 100644 --- a/qdrant-landing/static/_redirects +++ b/qdrant-landing/static/_redirects @@ -54,5 +54,12 @@ /documentation/tutorials-and-examples/managed-cloud-prometheus/* /documentation/ops-monitoring/managed-cloud-prometheus/:splat 301 /documentation/tutorials-and-examples/hybrid-cloud-prometheus/* /documentation/ops-monitoring/hybrid-cloud-prometheus/:splat 301 +# Search tutorials reorg +/documentation/tutorials-and-examples/cloud-inference-hybrid-search/* /documentation/tutorials-basics/cloud-inference-hybrid-search/:splat 301 +/documentation/tutorials-search-engineering/code-search/* /documentation/tutorials-develop/code-search/:splat 301 +/documentation/tutorials-search-engineering/neural-search/* /documentation/tutorials-develop/neural-search/:splat +/documentation/tutorials-search-engineering/hybrid-search-fastembed/* /documentation/tutorials-develop/hybrid-search-fastembed/:splat 301 +/documentation/tutorials-search-engineering/reranking-hybrid-search/* /documentation/tutorials-basics/reranking-hybrid-search/:splat 301 + # Deploy tab landing page slug change /documentation/cloud-intro/* /documentation/deploy-intro/:splat 301