Search¶
The main page has a search box, the dictionary picker, and the results: one collapsible section per dictionary.
Search modes¶
Choose the mode in the drop-down next to the search box.
| Mode | Matches | Needs |
|---|---|---|
| exact | the headword, ignoring case and accents | |
| prefix (default) | the headword, then headwords that start with the query; case and accents ignored | |
| wildcard | headwords that fit a pattern: ? is one character, * any number of characters; *rain* finds headwords that contain rain |
headword index |
| full-text | words in the article text, ranked by relevance | full-text index |
Exact and prefix work on every dictionary, indexed or not. Wildcard searches only indexed dictionaries: each dictionary gets its headword index in the background on its first search. Full-text searches only dictionaries that have the full-text index. A dictionary that does not have the index a search needs shows a link that adds it.
To add the full-text index to one dictionary, click its full-text switch in the dictionary panel. To add it to all dictionaries: ☰ → folder summary → Full-text for every dictionary….
Case, accents and spelling¶
Every mode ignores case and accents: corazon finds corazón, OXFORD
finds Oxford.
In exact, prefix and wildcard search, a capital letter or an accent in the query sets the order of the results. It does not exclude a result:
- The headword spelled exactly as typed comes first:
marchlists march before March,Marchlists March before march. - A capital letter puts the headwords with that case first, an accent the
headwords with that accent:
überlists über and the Über- words before uber. - The query spelled in full comes before the headwords it starts:
nacionlists nación before nacional. - The rest is in alphabetical order, as in a printed dictionary: accents
and case count only between headwords that are otherwise the same.
überlists über, über-, Über-, Über-Ich, überaktiv, Überaktivität…
The rules in full: Case and accents and Result order. A dictionary that is not indexed yet ignores case and accents only when nothing matches as typed.
Full-text search ignores accents on Latin letters only: елка finds ёлка
in exact, prefix and wildcard search, not in full-text search.
No mode corrects spelling: *orre* finds correr, *corer* finds nothing.
Index sizes¶
For a dictionary of 40,000 entries:
| Index | Size | Built |
|---|---|---|
| headword | about 2 MB | automatically |
| full-text | about 12 MB | on request |
The dictionary panel shows the index sizes for your own dictionaries. An indexed dictionary is usually smaller than its dictionary files, because article text is stored compressed.
Full-text search¶
Full-text search matches words in the article text of dictionaries that have a full-text index. Its query has its own syntax (Full-text query syntax); in the other modes the query is literal text.
Unquoted queries¶
A query of several words, without quotes or operators, is matched in up to three stages. Each dictionary stops at the first stage that returns results.
| Stage | Matches | no pun intended finds |
|---|---|---|
| phrase | the words adjacent, in the given order | …and, no pun intended, he resigned |
| proximity | all words, at most 10 words between them, in any order | …clearly intended as a pun… |
| anywhere | all words anywhere in the article | …pun … intended… |
The result header of a dictionary answered at the second or third stage shows phrase not found · words proximity or phrase not found · words anywhere.
Wildcard search¶
Wildcard search matches the whole headword against a pattern. ? stands for
one character, * for any number of characters, none included.
| Pattern | Finds |
|---|---|
c?t |
cat, cot, cut |
b???d |
beard, blood, bread |
*ology |
biology, ology, zoology |
*rain* |
brain, rain, rainbow, terrain |
un*able |
unable, unbelievable, unthinkable |
apple |
apple, Apple; not apples |
Inflected words¶
When a single-word query returns nothing in a dictionary, wudict looks up the
word's lemma and searches that dictionary again: knew → know,
estuviera → estar. A banner names the lemma. A wildcard query that
contains * or ? is not lemmatized.
The retry goes only to dictionaries that returned nothing, and only with lemma data for the dictionary's language: sale → salir is never searched in an English dictionary. How the language is detected: Configuration → Lemmatization.
English lemma data is built in. To install another language:
- ☰ → folder summary → Lemmatization…, or 🔤 Lemmatization on the setup page, and tick the language. It applies from the next search. This is the only way on Android.
- In a terminal:
wudict lemmas download ru. A running server uses it after a restart.
Untick a language to delete its lemma data.
A language's lemma data is loaded on the first search that needs it and uses
1 MB (Persian) to 90 MB (Slovak) of memory; the Lemmatization page lists each
figure. At most MORPH_CACHE
languages stay loaded: 2 on a desktop, 1 on Android. MORPH_CACHE = "0" turns
lemmatization off.
Result order¶
Results appear in the order of the dictionary panel. The section that opens first is placed above dictionaries that have not answered yet. Open first in the dictionary panel decides which section that is: the first dictionary in your order that has a result (My order, the default), or the first to answer (Fastest).
A search of several dictionaries shows up to 5 results per dictionary; a search of one dictionary, up to 25. more… in a section header shows up to 100 results from that dictionary.
Cross-references¶
A link in an article is looked up in the same dictionary first. If that dictionary has no such headword, all dictionaries are searched, and a banner says so.
Brief and full view¶
Lingvo DSL dictionaries mark part of an article as secondary text: usually the examples, often the links to sub-entries. It is hidden when an article opens. The button at the right end of a dictionary's header shows it; its icon draws the hidden line dotted. Shown, secondary text is grey.
- The next result opens the way you left the last one. The choice is stored with your other settings, so every browser and the Android app that use the same wudict share it.
- A full-text match inside secondary text, or a link to a place inside it, shows it for that result only.
- Ctrl+* shows or hides it in the section you are reading (desktop).
Keys and buttons¶
| Key or button | Action |
|---|---|
| / | focus the search box |
| Esc | close the dictionary panel |
| double-click a word in an article | search for it |
| ⊞ / ⊟ | expand / collapse all results |
| ⇔ | wide layout on or off |
| ◐ | theme: auto, light, dark |
| Ctrl+* | show or hide secondary text in the section you are reading |
Dictionary panel¶
☰ opens it.
| Control | Effect |
|---|---|
| − 15px + | article text size; click the size to reset |
| A–Z (beside the find field) | unpin all dictionaries; it asks first. Shown while a dictionary is pinned |
| Highlight matches | mark the query's words in articles (full-text only); on by default |
| Read aloud | offer to read selected article text aloud; on by default |
| Open first: My order, Fastest | which result section opens first |
| Group by | the groups the picker offers |
| folder summary ⚙ 2 folders · 105 dictionaries | folders, library and config file in effect; Edit folders…, Rescan folders, Lemmatization…, Browse A–Z…, Edit groups…, Custom styles…, Full-text for every dictionary… |
Each dictionary row:
- pin: add the dictionary to the pinned ones, after the others. Pinned dictionaries come first, in your order; all the others follow A–Z. Results and the picker follow this order.
- to the top (arrow under a bar): make the dictionary the first in the list. An unpinned dictionary is pinned.
- ▲ ▼, or ⠿ (drag, desktop): move a pinned dictionary among the pinned ones.
- checkbox: enabled for All dictionaries searches. A disabled dictionary can still be chosen in the picker.
- name: search this dictionary only.
- switches: 🚀 index (then the index size), full-text, media. Click to add or remove.
- file row (e.g.
Oxford.mdx): the dictionary files, the library folder, and 🗑 Remove…. - About this dictionary: its groups and its own description.
Rescan folders re-reads the dictionary folders; use it after adding or deleting dictionary files.
Link to a search¶
The address holds the query, the mode and the dictionary selection, so a search can be bookmarked or opened from a script. Back and Forward step through searches.
| Parameter | Value |
|---|---|
q |
the query |
mode |
exact, prefix, fts or wildcard; in a wildcard query, write ? as %3F |
dict |
all, a dictionary id (/api/dicts lists them), or a group, e.g. g:lang:en |
theme |
auto, light or dark; kept for later visits |
On Android, wudict://lookup?q=serendipity opens the same search; see
the Android app.
Search from the terminal¶
wudict searchall phubbing # all dictionaries in DICT_DIR
wudict searchall -dict-dir ~/Dictionaries/es phubbing # one folder
wudict searchall -format raw phubbing # the dictionaries' own HTML
wudict searchall -format clean phubbing # HTML without scripts and styles
wudict lookup ~/Dictionaries/Oxford.mdx phubbing
wudict prefix ~/Dictionaries/Oxford.mdx phubb
wudict fts ~/.wudict/db/Oxford "sudden fear"
wudict wildcard ~/.wudict/db/Oxford 'b???d'
wudict wildcard ~/.wudict/db/Oxford '*phub*'
fts and wildcard need an indexed dictionary: pass its library folder. Put a wildcard query in single quotes, so that the shell does not
expand * and ?.
lookup and prefix work on any dictionary file. searchall uses exact mode
unless -mode says otherwise.
Full-text queries run as in the web UI. The shell removes quotes before wudict sees them; wrap the query in single quotes to keep double quotes: