Synonimy i stemming
Poprawią Państwo kompletność wyników wyszukiwania pełnotekstowego, ucząc Elasticsearch rozpoznawania wariantów i odpowiedników słów za pomocą filtrów tokenów stemming i synonym.
Synonimy i stemming to bezpłatna lekcja Elasticsearch & Full Text Search Systems na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Elasticsearch & Full Text Search Systems, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Elasticsearch & Full Text Search Systems zawiera 4 lekcji w sumie.
Części tej lekcji nie zostały jeszcze przetłumaczone i są wyświetlane po angielsku.
Closing the Vocabulary Gap
Users rarely type the exact words stored in your documents. They search running but your text says run, or they type laptop when the doc says notebook. Two analysis techniques bridge this gap: stemming and synonyms.
What Stemming Does
Stemming reduces words to a common root form. running, runs, and ran may all become run. This means a query matches regardless of the grammatical form used.
Algorithmic Stemmers
Elasticsearch ships algorithmic stemmers like porter_stem and the language-aware stemmer filter. They apply rules to strip suffixes quickly without a dictionary.
"filter": {
"my_stemmer": {
"type": "stemmer",
"language": "english"
}
}Dictionary Stemmers
Dictionary stemmers such as hunspell use real word lists for more accurate, linguistically correct roots. They are slower and need dictionary files but avoid over-stemming.
Over- and Under-Stemming
Stemming has failure modes:
- Over-stemming: unrelated words map to the same root (e.g.
universeanduniversity). - Under-stemming: related words fail to share a root.
Use keyword_marker to protect specific words from stemming.
What Synonyms Do
Synonyms map words with the same meaning to each other. Searching tv can match television. They are applied via a synonym token filter in the analyzer chain.
"filter": {
"my_synonyms": {
"type": "synonym",
"synonyms": [ "tv, television", "laptop, notebook" ]
}
}Equivalent vs Explicit
Synonym rules come in two styles:
- Equivalent (
tv, television): all terms are interchangeable. - Explicit (
i-pod => ipod, music player): the left maps to the right only.
Index-Time vs Search-Time
Synonyms can be applied when indexing or when searching. Search-time synonyms (via synonym_graph) are preferred because you can update the list without re-indexing the whole corpus.
"filter": {
"graph_syns": {
"type": "synonym_graph",
"synonyms_path": "analysis/synonyms.txt"
}
}Multi-Word Synonyms
Multi-word synonyms like ny, new york need the graph-aware synonym_graph filter at search time to be tokenized correctly. The older synonym filter mishandles phrases.
Combining Both
A typical chain applies synonyms first, then stemming, after lowercasing. Order matters: stem after expanding synonyms so all variants get normalized consistently.
"my_analyzer": {
"tokenizer": "standard",
"filter": [ "lowercase", "graph_syns", "my_stemmer" ]
}Testing With _analyze
Always verify your chain with the _analyze API to confirm the produced tokens match your expectations before relying on it in production.
GET my_index/_analyze
{
"analyzer": "my_analyzer",
"text": "running televisions"
}Quick Check
Test your understanding of recall-boosting filters.
Recap
You learned to widen search recall:
- Stemming reduces word forms to a shared root; watch for over/under-stemming.
- Synonyms map equivalent terms; equivalent vs explicit rules behave differently.
- Prefer
synonym_graphat search time for editable, multi-word-safe synonyms. - Verify analyzer output with the
_analyzeAPI.
Ucz się Elasticsearch & Full Text Search Systems dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 12
- Lekcje
- 48
Często zadawane pytania
Czy lekcja „Synonimy i stemming” jest bezpłatna?
Tak — pełny tekst „Synonimy i stemming” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Elasticsearch & Full Text Search Systems, przejdź na CoddyKit PRO. Kurs Elasticsearch & Full Text Search Systems zawiera 4 lekcji w sumie.
Co nauczysz się w „Synonimy i stemming”?
Poprawią Państwo kompletność wyników wyszukiwania pełnotekstowego, ucząc Elasticsearch rozpoznawania wariantów i odpowiedników słów za pomocą filtrów tokenów stemming i synonym. Ćwiczysz Elasticsearch & Full Text Search Systems z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Elasticsearch & Full Text Search Systems?
Nie wymagamy żadnego doświadczenia. Elasticsearch & Full Text Search Systems w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „Synonimy i stemming”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Elasticsearch & Full Text Search Systems?
Tak. Każda lekcja Elasticsearch & Full Text Search Systems zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Analizatory, tokenizery i filtry
- Dostosowywanie analizatorów tekstu
- Podbijanie i ocenianie trafności
- Synonimy i stemming