${x.title}
Why standard analysis misses it
${x.why}
In a search benchmark for German, Bitext Linguistic Analysis SDK returned more relevant results and missed fewer useful passages than every tested Elasticsearch configuration. In short, Bitext Linguistic Analysis improves German search quality by up to 36%.
The benchmark uses the test data from the MIRACL dataset with 700+ queries and 7,000+ manually-annotated relevance judgments and focuses on the top 10 results, the most relevant for RAG:
Compared with Elasticsearch’s default analyzer, Bitext SDK improved precision by 35.0%, recall by 39.6%, and their combined F1 score by 36.1%
Compared with Elasticsearch’s built-in German analyzer, Bitext increased precision by 8.7%, and recall by 13.6%, and 9.6% in F1
Compared to the recommended Elastic German decompounding setup precision by 4.3%, recall by 10.2%, and F1 by 5.5%.
For users, the impact is straightforward: more relevant results, less noise and hallucinations, stronger candidate sets for reranking and RAG, and better evidence for search applications and AI agents before any expensive downstream model is applied. Because these gains were confirmed on an industry-standard test set, they provide strong evidence that better linguistic analysis can improve retrieval quality across enterprise search, hybrid retrieval, RAG grounding, and agentic workflows.
Text analysis is one of the most important, and frequently underestimated, parts of search and AI pipelines. Before lexical search, vector search, reranking, RAG, or an AI agent can use a document, the system must decide which words and linguistic relationships to represent. The default option, no text analysis, can miss valid morphological relationships that convey meaning relations. Classical stemming can discover some of these morphological relationships and improve recall, but it also hurts precision because analysis is based on word endings rather than actual word morphology, as explained in our analysis of why German search needs lemmatization. Splitting compounds exposes some useful subwords, but mostly introduces duplicates and noisy terms.
Bitext Linguistic Analysis SDK addresses this problem through a combination of:
original-form preservation and stopword handling (provided by Elastic)
German-specific normalization (provided by Elastic)
full-token lemmatization (provided by Bitext SDK)
compound analysis and lemmatization (provided by Bitext SDK)
We evaluated this pipeline in a controlled Elasticsearch benchmark using German MIRACL datasets. The MIRACL project (Multilingual Information Retrieval Across a Continuum of Languages) is an open research initiative, widely adopted by academic groups across the world. It was created to provide high-quality datasets and benchmarks for evaluating retrieval systems across many languages, including those with relatively limited digital resources.
The final evaluation used:
as target document database: 15,866,222 German Wikipedia passages;
as queries: 712 German MIRACL test topics;
as evaluation judgements: 7,317 MIRACL test relevance judgments;
the same Elasticsearch version, corpus, settings, and evaluation code for every configuration;
evaluation is focused on top 10 results provided, since they are the only ones evaluated by human experts in the MIRACL dataset; and also the ones that users and AI-based pipelines like RAG or agents typically use;
frozen indices and query configurations, with no tuning after test results were observed.
The comparison included four different approaches to text analysis, three approaches provided by Elastic, and a fourth one based on Bitext Linguistic Analysis. The goal is to evaluate if Bitext approach can improve all three alternatives provided by Elastic, since they are the most commonly used ones by major search engines.
Approach 1. Elasticsearch default standard analysis: Standard tokenization and lowercasing, without any linguistic analysis –stemming or lemmatization.
Approach 2. Elasticsearch built-in German analyzer: Adds to Approach 1 normalization of German phenomena, stop-word removal, and light stemming.
Approach 3. Elastic German decompounder: Adds to Approach 2 analysis of full compound stems and splitting of component stems.
Approach 4. Bitext linguistic analysis: Builds on Approach 2 and generates all linguistic data from scratch providing Bitext lemmatization (instead of Elastic stemming) and Bitext decompounding (instead of Elastic compound stemming) for German.
| Configuration | nDCG | Recall | Precision | F1 | MRR |
|---|---|---|---|---|---|
| Approach 1 | 0.157726 | 0.197563 | 0.055758 | 0.080585 | 0.204049 |
| Approach 2 | 0.188757 | 0.242742 | 0.069242 | 0.100065 | 0.237202 |
| Approach 3 | 0.197915 | 0.250250 | 0.072191 | 0.103969 | 0.252236 |
| Approach 4 | 0.206119 | 0.275821 | 0.075281 | 0.109650 | 0.256227 |
Meaning of the metrics:
nDCG measures ranking quality in the first ten results, rewarding systems that place known relevant passages higher.
Precision measures the proportion of the first ten results that are relevant.
Recall measures how much of the known relevant material appears on the first result page.
F1 balances first-page precision and recall.
MRR measures how early the first relevant result appears.
The full evaluation covered all 712 topics (queries) and Approach 4, based on Bitext Linguistic Analysis, produced improvement across all dimensions over Approach 3. The Bitext configuration had the highest nDCG, Recall, Precision, F1, and MRR among the reported configurations.
| Comparison | nDCG | Recall | Precision | F1 | MRR |
|---|---|---|---|---|---|
| Approach 4 vs. 1 | +30.7% | +39.6% | +35.0% | +36.1% | +25.6% |
| Approach 4 vs. 2 | +9.2% | +13.6% | +8.7% | +9.6% | +8.0% |
| Approach 4 vs. 3 | +4.1% | +10.2% | +4.3% | +5.5% | +1.6% |
At the end of this document we add some examples of different linguistic phenomena in German and how they are handled by different approaches. These examples help understand the reason behind the improvements provided by Approach 4.
The benchmark shows that linguistic analysis of input text, prior to executing downstream tasks like search, improves results, mostly through lemmatization and compounds.
Elastic’s built-in German analysis (Approach 2) produced a major improvement over standard analysis (Approach 1). Adding index-time decompounding (Approach 3) improved the Elastic result further. This confirms that German compound structure provides useful retrieval evidence.
Bitext Linguistic Analysis (Approach 4) improved again over all 3 approaches by replacing approximate full-token stemming with dictionary-based lemmatization and by linguistically splitting and representing compound components as lemmas. This provides a more linguistically controlled document representation that combines:
original token
+ full-token lemma
+ component lemmas
The system therefore gained component-level matching in the document index without indiscriminately expanding every query.
When text preprocessing misses valid word forms or compound relationships:
relevant documents never enter the candidate set;
rerankers have nothing to rescue;
RAG systems ground answers in weaker evidence;
AI agents may fail to find the source required to complete a task.
When token analysis (stemming) introduces noisy terms:
search term statistics are distorted;
irrelevant documents may be promoted;
more expensive downstream models must compensate.
In short, linguistic analysis strengthens the retrieval layer before those expensive downstream costs are incurred.
Better linguistic analysis improves the retrieval evidence available to every downstream stage:
For lexical search, it improves lexical matching and top-page ranking.
For hybrid retrieval, it strengthens the sparse lexical channel before it is combined with embeddings.
For RAG, it improves the candidate passages supplied to rerankers and language models.
For AI agents, it reduces the risk that a useful document is missed because the query and document use different inflected or compound forms.
Most importantly, the benchmark does not claim that linguistic analysis replaces vector retrieval, reranking, or LLM reasoning. It shows that these AI-based pipelines work better, when they have a stronger starting point based on linguistic analysis, since lexical evidence is normalized accurately.
The German MIRACL evaluation supports three conclusions.
German-specific stemming (Approach 2) improves over Elasticsearch’s default standard analyzer (Approach 1).
Compound-aware indexing (Approach 3) improves over stemming (Approach 2).
Bitext’s linguistic analysis (Approach 4) produced the strongest top-ranking result combines full-token lemmatization and compound splitting plus lemmatization using linguistic analysis.
The practical takeaway is not that linguistic analysis replaces modern ranking or generation systems; it is that those systems perform better when the lexical evidence entering the pipeline is more accurate.
Search quality can be improved before adding another model, reranker, or generation layer. Full-token lemmatization and controlled compound analysis provide stronger lexical evidence at the beginning of the retrieval pipeline.
The aggregate benchmark shows that Approach 4, the Bitext configuration, delivered the strongest overall German retrieval results. This section includes some examples of queries and results that make the practical differences between approaches easier to see. In every example, the ranks refer to the same passage that human evaluators marked as relevant.
Why linguistic analysis changes retrieval
Each example shows the words used in the query, the different forms found in the relevant passage, and the linguistic analysis that connects them.
${x.why}
`).join(''); function show(i){at=(i+cases.length)%cases.length;document.querySelectorAll('.case').forEach((x,n)=>x.classList.toggle('active',n===at));document.querySelectorAll('.dot').forEach((x,n)=>x.classList.toggle('active',n===at));document.querySelector('.counter').textContent=`Example ${at+1} of ${cases.length}`;document.querySelector('#prev').style.visibility=at===0?'hidden':'visible';document.querySelector('#next').textContent=at===cases.length-1?'Back to first example ↺':'Next example →'} nav.addEventListener('click',e=>{if(e.target.dataset.i)show(+e.target.dataset.i)});document.querySelector('#prev').>
These examples show two complementary benefits. Lemmatization connects different grammatical forms, such as wiegt, wogen, and wog—weighs and weighed. Compound analysis uncovers useful concepts inside words such as Lehrerausbildung—teacher training—and Zahlzeichen—numeral symbols.
For users, the result is straightforward: relevant information appears closer to the top of the results, where it is more likely to be seen, selected, and passed to downstream systems such as rerankers, RAG applications, and AI agents.
If you’d like to learn more or test this approach in your Elasticsearch or OpenSearch setup, feel free to
contact us here.
Our earlier German MIRACL benchmark showed that linguistic analysis can substantially improve lexical search in…
Vector search, also known as semantic search, has transformed enterprise search in the past few…
Search systems have relied on stemming for decades. The reason is simple: stemming is fast,…
Most teams working with Elasticsearch, OpenSearch or RAG pipelines focus on ranking, embeddings or model…
Some RAG issues have a simpler fix than people think: better text normalization. One common…
The Experiment We tested this idea using the Leipzig English News corpora from the Wortschatz…