# Building a RAG Pipeline for Semantic Code Search: A Developer Diary and Field Notes

DevFeed: [Building a RAG Pipeline for Semantic Code Search: A Developer Diary and Field Notes](<https://devfeed.tech/articles/building-a-rag-pipeline-for-semantic-code-search-a-developer-diary-and-field-notes-41302.md>)

Original publisher: [Read original article](<https://blog.jetbrains.com/ai/2026/09/building-a-rag-pipeline-for-semantic-code-search-a-developer-diary-and-field-notes/>)

Author: Adam Malek

Published: 2026-09-17T12:39:40Z

Content type: article

Language: en

Sources: [The JetBrains Blog](<https://devfeed.tech/sources/the-jetbrains-blog.md>)

Topics: [Retrieval Augmented Generation (RAG)](<https://devfeed.tech/topics/retrieval-augmented-generation-rag.md>), [code search](<https://devfeed.tech/topics/code-search.md>), [Parsing](<https://devfeed.tech/topics/parsing.md>), [jetbrains](<https://devfeed.tech/topics/jetbrains.md>), [Large Language Model](<https://devfeed.tech/topics/llm.md>)

Tags: [agentic-ai](<https://devfeed.tech/tags/agentic-ai.md>), [ai](<https://devfeed.tech/tags/ai.md>), [code-search](<https://devfeed.tech/tags/code-search.md>), [jetbrains](<https://devfeed.tech/tags/jetbrains.md>), [llm](<https://devfeed.tech/tags/llm.md>), [llm-agents](<https://devfeed.tech/tags/llm-agents.md>), [parsing](<https://devfeed.tech/tags/parsing.md>), [rag](<https://devfeed.tech/tags/rag.md>), [search](<https://devfeed.tech/tags/search.md>), [semantic](<https://devfeed.tech/tags/semantic.md>)

## AI overview

Part 1 of a developer diary explains how JetBrains built a RAG pipeline for semantic code search, covering parsing, chunking, and vectorization. The pipeline is intended to give LLM agents precise, citable evidence from real repositories and retrieve code by meaning rather than exact keywords.

## Source excerpt

Part 1: Parsing, chunking, and vectorization Some time ago, we set out to build the best semantic code search platform we could: a RAG pipeline that gives LLM agents precise, citable evidence from real repositories instead of whatever grep happens to surface. The eventual solution was JetBrains Context. We got it working, we got it [...]