<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Doug Turnbull</title>
		<description>Doug Turnbull's personal blog and essays</description>
		<link>http://softwaredoug.com/</link>
        <atom:link href="http://softwaredoug.com/feed.xml" rel="self" type="application/rss+xml" />
		
			<!-- Only include non-draft posts -->
				<item>
					<title>Can agents replace the search stack?</title>
					<description>Instead of deploying the traditional query understanding + reranking combo, can we let an agent do all the work?</description>
					<pubDate>Tue, 28 Apr 2026 00:00:00 +0000</pubDate>
                    <link>http://softwaredoug.com/blog/2026/04/28/search-apis-replaced-by-agents.html</link>
                    <guid isPermaLink="true">http://softwaredoug.com/blog/2026/04/28/search-apis-replaced-by-agents.html</guid>
				</item>
			
		
			<!-- Only include non-draft posts -->
				<item>
					<title>Metadata: the 3rd kind of retrieval</title>
					<description>In search we talk about lexical embedding retrieval But we miss another retrieval philosophy metadata And with LLMs its never...</description>
					<pubDate>Tue, 21 Apr 2026 12:15:00 +0000</pubDate>
                    <link>http://softwaredoug.com/blog/2026/04/21/metadata-the-3rd-kind-of-retrieval.html</link>
                    <guid isPermaLink="true">http://softwaredoug.com/blog/2026/04/21/metadata-the-3rd-kind-of-retrieval.html</guid>
				</item>
			
		
			<!-- Only include non-draft posts -->
				<item>
					<title>What is psuedo-relevance feedback?</title>
					<description>After retrieving BM25 or any ranked search results you might not realize it but you have new information about the...</description>
					<pubDate>Mon, 13 Apr 2026 12:15:00 +0000</pubDate>
                    <link>http://softwaredoug.com/blog/2026/04/13/what-is-psuedo-relevance-feedback.html</link>
                    <guid isPermaLink="true">http://softwaredoug.com/blog/2026/04/13/what-is-psuedo-relevance-feedback.html</guid>
				</item>
			
		
			<!-- Only include non-draft posts -->
				<item>
					<title>Is grep all you need for RAG?</title>
					<description>With enough work you can build a search system with just grep. But it’s not for the faint of heart.</description>
					<pubDate>Mon, 06 Apr 2026 12:15:00 +0000</pubDate>
                    <link>http://softwaredoug.com/blog/2026/04/06/agentic-search-is-having-a-grep-moment.html</link>
                    <guid isPermaLink="true">http://softwaredoug.com/blog/2026/04/06/agentic-search-is-having-a-grep-moment.html</guid>
				</item>
			
		
			<!-- Only include non-draft posts -->
				<item>
					<title>Stop evaluating search with queries</title>
					<description>To evaluate search we typically build a judgment list We transform clickstream data into evaluation data This labels a result...</description>
					<pubDate>Mon, 30 Mar 2026 13:56:40 +0000</pubDate>
                    <link>http://softwaredoug.com/blog/2026/03/30/session-vs-query-based-search-evals.html</link>
                    <guid isPermaLink="true">http://softwaredoug.com/blog/2026/03/30/session-vs-query-based-search-evals.html</guid>
				</item>
			
		
			<!-- Only include non-draft posts -->
				<item>
					<title>Agents put the Resilient in RAG</title>
					<description>Classic RAG expects a linear process 1 An LLM translates the user’s prompt into a query 2 We search on...</description>
					<pubDate>Thu, 26 Mar 2026 12:15:00 +0000</pubDate>
                    <link>http://softwaredoug.com/blog/2026/03/26/classic-rag-s-achilles-heel-lack-of-resilience.html</link>
                    <guid isPermaLink="true">http://softwaredoug.com/blog/2026/03/26/classic-rag-s-achilles-heel-lack-of-resilience.html</guid>
				</item>
			
		
			<!-- Only include non-draft posts -->
				<item>
					<title>Why tiny late interaction models win</title>
					<description>Late interaction is having a moment The team at LightOn including superstar developer Antoine Chaffin has demonstrated how a 150M...</description>
					<pubDate>Mon, 23 Mar 2026 12:15:00 +0000</pubDate>
                    <link>http://softwaredoug.com/blog/2026/03/23/we-can-learn-from-this-late-interaction-win.html</link>
                    <guid isPermaLink="true">http://softwaredoug.com/blog/2026/03/23/we-can-learn-from-this-late-interaction-win.html</guid>
				</item>
			
		
			<!-- Only include non-draft posts -->
				<item>
					<title>How to actually choose a retrieval engine</title>
					<description>How do teams choose vector databases search engines People wrack their brains between Elasticsearch OpenSearch Solr Vespa Pinecone Turbopuffer Weaviate...</description>
					<pubDate>Fri, 20 Mar 2026 12:15:00 +0000</pubDate>
                    <link>http://softwaredoug.com/blog/2026/03/20/how-to-actually-choose-a-retrieval-engine.html</link>
                    <guid isPermaLink="true">http://softwaredoug.com/blog/2026/03/20/how-to-actually-choose-a-retrieval-engine.html</guid>
				</item>
			
		
			<!-- Only include non-draft posts -->
				<item>
					<title>Content understanding IS Query understanding</title>
					<description>A user searches for red shoes they click on some products Now you have a set of relevant products Great...</description>
					<pubDate>Wed, 18 Mar 2026 12:15:00 +0000</pubDate>
                    <link>http://softwaredoug.com/blog/2026/03/18/content-understanding-is-query-understanding.html</link>
                    <guid isPermaLink="true">http://softwaredoug.com/blog/2026/03/18/content-understanding-is-query-understanding.html</guid>
				</item>
			
		
			<!-- Only include non-draft posts -->
				<item>
					<title>Bayesian BM25 is cool</title>
					<description>Look at this math and grasp at its majesty P(R) = prob(embeddings) * prod(lexical)</description>
					<pubDate>Mon, 16 Mar 2026 12:15:00 +0000</pubDate>
                    <link>http://softwaredoug.com/blog/2026/03/16/bayesian-bm25-is-cool.html</link>
                    <guid isPermaLink="true">http://softwaredoug.com/blog/2026/03/16/bayesian-bm25-is-cool.html</guid>
				</item>
			
		
	</channel>
</rss>
