Keyword Search
search_by_keywordKeyword search across the Pāli Tipiṭaka (trigram word-similarity).
Searches the configured enabled language(s) on the server. Filterable by pitaka and translation edition.
💡 Hints for the AI client: The system's canonical reference is Romanised Pāli (from SuttaCentral). If the user asks in a disabled or unsupported language, translate the keyword to Romanised Pāli (preferred) or English before calling this tool — e.g. "suffering" → "dukkha", "mindfulness of breathing" → "ānāpānassati". See the server instructions for the enabled language set.
✅ Diacritics do not matter. anapanassati and ānāpānassati return
the same thing; so do nibbana and nibbāna. Write the macrons if you
know them, guess without them if you don't — neither costs you results.
⚠️ A common Pāli noun is a poor query. samudda (sea) matches ~700
segments and the top of that list is mostly section headings, not the
passage that teaches anything. Two things to do instead:
Search the rarest distinctive noun in the passage, not its most obvious one. For the simile of the blind turtle,
turtle/kacchapagets there;ocean/samuddadoes not, in either language.Prefer English, or raise the limit.
turtlereturns SN 56.47 and SN 56.48 inside the default window;kacchapamatches them too but ranks them past 30, so you needlimit=50to see them.A word inside a compound may be out of reach entirely:
samuddascores 0.50 againstmahāsamudde(compounded and inflected), under the 0.6 cutoff, so SN 56.47 is not ranked low — it is excluded. Trying more spellings will not recover it; search a different word instead.
🔍 Pick the right search tool for the question shape:
Term lookup (exact word appearances) — e.g. "occurrences of
ānāpānassati": this tool is best (trigram nails the exact word).Concept search ("discourses about X") — e.g. "discourses about mindfulness of breathing": use
search_hybridinstead. Canonical Pāli has two quirks that hurt keyword search for concepts: • Section headings (Ānāpānapabba) often use a different word than the teaching body, which uses verb forms (assasati,passasati,dīghaṁ,rassaṁ). E.g. DN22's Ānāpānapabba has 16 segments but the wordānāpānaappears in only 2 (header + footer) — the actual teaching segments won't match. • Stock phrases (e.g.So satova assasati, satova passasati) recur in 10+ suttas, so a keyword query ranks broadly and won't pinpoint the canonical reference.General keyword survey — set
limit≥30and filter client-side, or call multiple related forms (root verb + noun + compound).
📊 Reading the two scores. word_similarity is the primary sort key: it
scores your query against the best-matching span inside the line, 0 to 1,
and a row appears at all only if it clears the 0.6 cutoff. similarity
scores it against the whole line, so it falls as the line grows longer.
Both measure resemblance of letters — neither measures doctrinal importance.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"keyword": "<keyword>"
},
"name": "search_by_keyword"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum results (default: 10, max: 50). | |
| pitaka | No | Filter by pitaka — "vinaya", "sutta", "abhidhamma" or None (all). ✅ v1.1+: all three pitakas at parity with SuttaCentral bilara — see list_structure for live counts. | |
| edition | No | Thai translation edition — "dhiranandi", "jayasaro", "mbu", "royal" or None. Only used when language="thai" and Thai is enabled on the server. | |
| keyword | Yes | The word/phrase to search for. | |
| language | No | Search language — must be in the server's ENABLED_LANGUAGES (default: "pali"). Disabled languages return an error. | pali |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |