feat: add Czech stemmer and stopwords - #111
Conversation
philippemnoel
left a comment
There was a problem hiding this comment.
Thanks for this! Could you please sign the CLA and fix the CI? We'll be eager to review. It might also be worth raising this upstream in Tantivy
|
On the I'm intentionally leaving that out of this feature PR to keep the scope narrow. If you prefer, I can follow up with a separate formatting-only fix or rebase once the base branch is aligned. |
|
Fixed the rustfmt failure in This diff looks unrelated to the Czech stemmer/stopwords change itself, but I included it here to get the branch back to a green formatter state. Local checks run:
|
|
Tracked the current CI failure. I pushed 416a57a to fix the branch-specific break: the new Czech stopword test was importing Local verification:
There is still a separate I left that baseline issue untouched in this feature branch. |
d3afa7a to
8b8fe65
Compare
|
Thanks. We're pretty swamped with other issues, but we'll take a look once we get a chance! I'd recommend putting this in upstream as well to see if you can get feedback there, and if it's interesting to the broader Tantivy project |
|
@stuhood Feel free to merge and/or review as well if you want, and then we can have the contributor update the hash and merge this paradedb/paradedb PR |
Thanks, I can try upstream, but I expect this exact patch shape to get the same reaction as the upstream Polish proposal in quickwit-oss/tantivy#2746. The maintainer feedback there was mainly about not wanting to keep both There is also an open Czech addition on the For this PR I mainly wanted to follow the pattern ParadeDB had already accepted for Polish in paradedb/tantivy#82 and then integrated on the product side in paradedb/paradedb#3645. So this is meant as the same fork-local approach already used for Polish, just extended to Czech. |
Makes sense. We should do that clean up and move to tantivy-stemmers altogether, and contribute it upstream |
|
As soon as this is resolved: #111 (comment) ... we can merge this. Thanks! |
8b8fe65 to
c5ad397
Compare
|
Ok, link with the exact blob SHA for the stopwords list added in fc4c629 |
## What Adds Czech language support to ParadeDB tokenizer configuration, docs, and tests. - bump `paradedb/tantivy` revision to include Czech stemmer + stopwords support (`paradedb/tantivy#111`) - add `czech` parsing/mapping in typmod stemmer + stopwords language handling - extend shared language map with `Czech` - add Czech case to the search config integration language matrix - add pg_regress coverage: - `stemmer=czech` - `stopwords_language='Czech'` - update docs for valid stemming/stopwords languages (current + legacy docs) ## Why Expose new Czech capabilities added in `paradedb/tantivy` to ParadeDB users. ## Tests - `cargo check -p tokenizers` - `cargo test -p tokenizers` - `cargo check -p pg_search` (blocked in this environment: `$PGRX_HOME` missing) --------- Co-authored-by: Stu Hood <stuhood@gmail.com>
## What Adds Czech language support to Tantivy stemming and stopwords. - enable `tantivy-stemmers` Czech algorithm feature (`czech_dolamic_aggressive`) - add `Language::Czech` to stemmer language enum - map Czech stemmer to `tantivy_stemmers::algorithms::czech_dolamic_aggressive` - add Czech stopwords list (source: stopwords-iso/stopwords-cs, MIT) - wire `StopWordFilter::new(Language::Czech)` to Czech stopwords - add regression tests for Czech stemmer and Czech stopwords ## Why ParadeDB needs Czech support in both `stemmer` and `stopwords_language`, same model as existing Polish integration. ## Tests - `cargo test tokenizer::tests::test_cs_stemmer --lib` - `cargo test tokenizer::stop_word_filter::tests::test_stop_word_czech_language --lib` - `cargo test tokenizer::tests::test_pl_stemmer --lib`
## What Adds Czech language support to Tantivy stemming and stopwords. - enable `tantivy-stemmers` Czech algorithm feature (`czech_dolamic_aggressive`) - add `Language::Czech` to stemmer language enum - map Czech stemmer to `tantivy_stemmers::algorithms::czech_dolamic_aggressive` - add Czech stopwords list (source: stopwords-iso/stopwords-cs, MIT) - wire `StopWordFilter::new(Language::Czech)` to Czech stopwords - add regression tests for Czech stemmer and Czech stopwords ## Why ParadeDB needs Czech support in both `stemmer` and `stopwords_language`, same model as existing Polish integration. ## Tests - `cargo test tokenizer::tests::test_cs_stemmer --lib` - `cargo test tokenizer::stop_word_filter::tests::test_stop_word_czech_language --lib` - `cargo test tokenizer::tests::test_pl_stemmer --lib` (cherry picked from commit 27756f0)
What
Adds Czech language support to Tantivy stemming and stopwords.
tantivy-stemmersCzech algorithm feature (czech_dolamic_aggressive)Language::Czechto stemmer language enumtantivy_stemmers::algorithms::czech_dolamic_aggressiveStopWordFilter::new(Language::Czech)to Czech stopwordsWhy
ParadeDB needs Czech support in both
stemmerandstopwords_language, same model as existing Polish integration.Tests
cargo test tokenizer::tests::test_cs_stemmer --libcargo test tokenizer::stop_word_filter::tests::test_stop_word_czech_language --libcargo test tokenizer::tests::test_pl_stemmer --lib