diff --git a/.gitattributes b/.gitattributes index d0f6ad0646..c10128857f 100644 --- a/.gitattributes +++ b/.gitattributes @@ -62,4 +62,5 @@ tests/roots/test-pycode/cp_1251_coded.py working-tree-encoding=windows-1251 tests/js/fixtures/**/*.js generated sphinx/search/minified-js/*.js generated +sphinx/search/_stopwords/ generated sphinx/themes/bizstyle/static/css3-mediaqueries.js generated diff --git a/sphinx/search/__init__.py b/sphinx/search/__init__.py index 66875adf5e..1cb05bea0e 100644 --- a/sphinx/search/__init__.py +++ b/sphinx/search/__init__.py @@ -20,7 +20,7 @@ from sphinx.util._pathlib import _StrPath from sphinx.util.index_entries import split_index_msg if TYPE_CHECKING: - from collections.abc import Callable, Iterable + from collections.abc import Callable, Iterable, Set from typing import Any, Protocol, TypeVar from docutils.nodes import Node @@ -74,7 +74,7 @@ class SearchLanguage: lang: str = '' language_name: str = '' - stopwords: set[str] = set() + stopwords: Set[str] = frozenset() js_splitter_code: str = '' js_stemmer_rawcode: str = '' js_stemmer_code = """ @@ -128,9 +128,11 @@ from sphinx.search.en import SearchEnglish # NoQA: E402 def parse_stop_word(source: str) -> set[str]: - """Parse snowball style word list like this: + """Collect the stopwords from a snowball style word list: - * https://snowballstem.org/algorithms/finnish/stop.txt + .. code:: text + + list of space separated stop words | optional comment """ result: set[str] = set() for line in source.splitlines(): diff --git a/sphinx/search/_stopwords/__init__.py b/sphinx/search/_stopwords/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/sphinx/search/_stopwords/da.py b/sphinx/search/_stopwords/da.py new file mode 100644 index 0000000000..c31a51c6df --- /dev/null +++ b/sphinx/search/_stopwords/da.py @@ -0,0 +1,98 @@ +from __future__ import annotations + +DANISH_STOPWORDS = frozenset({ + 'ad', + 'af', + 'alle', + 'alt', + 'anden', + 'at', + 'blev', + 'blive', + 'bliver', + 'da', + 'de', + 'dem', + 'den', + 'denne', + 'der', + 'deres', + 'det', + 'dette', + 'dig', + 'din', + 'disse', + 'dog', + 'du', + 'efter', + 'eller', + 'en', + 'end', + 'er', + 'et', + 'for', + 'fra', + 'ham', + 'han', + 'hans', + 'har', + 'havde', + 'have', + 'hende', + 'hendes', + 'her', + 'hos', + 'hun', + 'hvad', + 'hvis', + 'hvor', + 'i', + 'ikke', + 'ind', + 'jeg', + 'jer', + 'jo', + 'kunne', + 'man', + 'mange', + 'med', + 'meget', + 'men', + 'mig', + 'min', + 'mine', + 'mit', + 'mod', + 'ned', + 'noget', + 'nogle', + 'nu', + 'når', + 'og', + 'også', + 'om', + 'op', + 'os', + 'over', + 'på', + 'selv', + 'sig', + 'sin', + 'sine', + 'sit', + 'skal', + 'skulle', + 'som', + 'sådan', + 'thi', + 'til', + 'ud', + 'under', + 'var', + 'vi', + 'vil', + 'ville', + 'vor', + 'være', + 'været', +}) diff --git a/sphinx/search/_stopwords/da.txt b/sphinx/search/_stopwords/da.txt new file mode 100644 index 0000000000..6f2bd01afc --- /dev/null +++ b/sphinx/search/_stopwords/da.txt @@ -0,0 +1,95 @@ +| source: https://snowballstem.org/algorithms/danish/stop.txt +og | and +i | in +jeg | I +det | that (dem. pronoun)/it (pers. pronoun) +at | that (in front of a sentence)/to (with infinitive) +en | a/an +den | it (pers. pronoun)/that (dem. pronoun) +til | to/at/for/until/against/by/of/into, more +er | present tense of "to be" +som | who, as +på | on/upon/in/on/at/to/after/of/with/for, on +de | they +med | with/by/in, along +han | he +af | of/by/from/off/for/in/with/on, off +for | at/for/to/from/by/of/ago, in front/before, because +ikke | not +der | who/which, there/those +var | past tense of "to be" +mig | me/myself +sig | oneself/himself/herself/itself/themselves +men | but +et | a/an/one, one (number), someone/somebody/one +har | present tense of "to have" +om | round/about/for/in/a, about/around/down, if +vi | we +min | my +havde | past tense of "to have" +ham | him +hun | she +nu | now +over | over/above/across/by/beyond/past/on/about, over/past +da | then, when/as/since +fra | from/off/since, off, since +du | you +ud | out +sin | his/her/its/one's +dem | them +os | us/ourselves +op | up +man | you/one +hans | his +hvor | where +eller | or +hvad | what +skal | must/shall etc. +selv | myself/yourself/herself/ourselves etc., even +her | here +alle | all/everyone/everybody etc. +vil | will (verb) +blev | past tense of "to stay/to remain/to get/to become" +kunne | could +ind | in +når | when +være | present tense of "to be" +dog | however/yet/after all +noget | something +ville | would +jo | you know/you see (adv), yes +deres | their/theirs +efter | after/behind/according to/for/by/from, later/afterwards +ned | down +skulle | should +denne | this +end | than +dette | this +mit | my/mine +også | also +under | under/beneath/below/during, below/underneath +have | have +dig | you +anden | other +hende | her +mine | my +alt | everything +meget | much/very, plenty of +sit | his, her, its, one's +sine | his, her, its, one's +vor | our +mod | against +disse | these +hvis | if +din | your/yours +nogle | some +hos | by/at +blive | be/become +mange | many +ad | by/through +bliver | present tense of "to be/to become" +hendes | her/hers +været | be +thi | for (conj) +jer | you +sådan | such, like this/like that diff --git a/sphinx/search/_stopwords/de.py b/sphinx/search/_stopwords/de.py new file mode 100644 index 0000000000..26ee3322ff --- /dev/null +++ b/sphinx/search/_stopwords/de.py @@ -0,0 +1,235 @@ +from __future__ import annotations + +GERMAN_STOPWORDS = frozenset({ + 'aber', + 'alle', + 'allem', + 'allen', + 'aller', + 'alles', + 'als', + 'also', + 'am', + 'an', + 'ander', + 'andere', + 'anderem', + 'anderen', + 'anderer', + 'anderes', + 'anderm', + 'andern', + 'anderr', + 'anders', + 'auch', + 'auf', + 'aus', + 'bei', + 'bin', + 'bis', + 'bist', + 'da', + 'damit', + 'dann', + 'das', + 'daß', + 'dasselbe', + 'dazu', + 'dein', + 'deine', + 'deinem', + 'deinen', + 'deiner', + 'deines', + 'dem', + 'demselben', + 'den', + 'denn', + 'denselben', + 'der', + 'derer', + 'derselbe', + 'derselben', + 'des', + 'desselben', + 'dessen', + 'dich', + 'die', + 'dies', + 'diese', + 'dieselbe', + 'dieselben', + 'diesem', + 'diesen', + 'dieser', + 'dieses', + 'dir', + 'doch', + 'dort', + 'du', + 'durch', + 'ein', + 'eine', + 'einem', + 'einen', + 'einer', + 'eines', + 'einig', + 'einige', + 'einigem', + 'einigen', + 'einiger', + 'einiges', + 'einmal', + 'er', + 'es', + 'etwas', + 'euch', + 'euer', + 'eure', + 'eurem', + 'euren', + 'eurer', + 'eures', + 'für', + 'gegen', + 'gewesen', + 'hab', + 'habe', + 'haben', + 'hat', + 'hatte', + 'hatten', + 'hier', + 'hin', + 'hinter', + 'ich', + 'ihm', + 'ihn', + 'ihnen', + 'ihr', + 'ihre', + 'ihrem', + 'ihren', + 'ihrer', + 'ihres', + 'im', + 'in', + 'indem', + 'ins', + 'ist', + 'jede', + 'jedem', + 'jeden', + 'jeder', + 'jedes', + 'jene', + 'jenem', + 'jenen', + 'jener', + 'jenes', + 'jetzt', + 'kann', + 'kein', + 'keine', + 'keinem', + 'keinen', + 'keiner', + 'keines', + 'können', + 'könnte', + 'machen', + 'man', + 'manche', + 'manchem', + 'manchen', + 'mancher', + 'manches', + 'mein', + 'meine', + 'meinem', + 'meinen', + 'meiner', + 'meines', + 'mich', + 'mir', + 'mit', + 'muss', + 'musste', + 'nach', + 'nicht', + 'nichts', + 'noch', + 'nun', + 'nur', + 'ob', + 'oder', + 'ohne', + 'sehr', + 'sein', + 'seine', + 'seinem', + 'seinen', + 'seiner', + 'seines', + 'selbst', + 'sich', + 'sie', + 'sind', + 'so', + 'solche', + 'solchem', + 'solchen', + 'solcher', + 'solches', + 'soll', + 'sollte', + 'sondern', + 'sonst', + 'um', + 'und', + 'uns', + 'unse', + 'unsem', + 'unsen', + 'unser', + 'unses', + 'unter', + 'viel', + 'vom', + 'von', + 'vor', + 'war', + 'waren', + 'warst', + 'was', + 'weg', + 'weil', + 'weiter', + 'welche', + 'welchem', + 'welchen', + 'welcher', + 'welches', + 'wenn', + 'werde', + 'werden', + 'wie', + 'wieder', + 'will', + 'wir', + 'wird', + 'wirst', + 'wo', + 'wollen', + 'wollte', + 'während', + 'würde', + 'würden', + 'zu', + 'zum', + 'zur', + 'zwar', + 'zwischen', + 'über', +}) diff --git a/sphinx/search/_stopwords/de.txt b/sphinx/search/_stopwords/de.txt new file mode 100644 index 0000000000..94c4777bd0 --- /dev/null +++ b/sphinx/search/_stopwords/de.txt @@ -0,0 +1,278 @@ +|source: https://snowballstem.org/algorithms/german/stop.txt +aber | but + +alle | all +allem +allen +aller +alles + +als | than, as +also | so +am | an + dem +an | at + +ander | other +andere +anderem +anderen +anderer +anderes +anderm +andern +anderr +anders + +auch | also +auf | on +aus | out of +bei | by +bin | am +bis | until +bist | art +da | there +damit | with it +dann | then + +der | the +den +des +dem +die +das + +daß | that + +derselbe | the same +derselben +denselben +desselben +demselben +dieselbe +dieselben +dasselbe + +dazu | to that + +dein | thy +deine +deinem +deinen +deiner +deines + +denn | because + +derer | of those +dessen | of him + +dich | thee +dir | to thee +du | thou + +dies | this +diese +diesem +diesen +dieser +dieses + + +doch | (several meanings) +dort | (over) there + + +durch | through + +ein | a +eine +einem +einen +einer +eines + +einig | some +einige +einigem +einigen +einiger +einiges + +einmal | once + +er | he +ihn | him +ihm | to him + +es | it +etwas | something + +euer | your +eure +eurem +euren +eurer +eures + +für | for +gegen | towards +gewesen | p.p. of sein +hab | have +habe | have +haben | have +hat | has +hatte | had +hatten | had +hier | here +hin | there +hinter | behind + +ich | I +mich | me +mir | to me + + +ihr | you, to her +ihre +ihrem +ihren +ihrer +ihres +euch | to you + +im | in + dem +in | in +indem | while +ins | in + das +ist | is + +jede | each, every +jedem +jeden +jeder +jedes + +jene | that +jenem +jenen +jener +jenes + +jetzt | now +kann | can + +kein | no +keine +keinem +keinen +keiner +keines + +können | can +könnte | could +machen | do +man | one + +manche | some, many a +manchem +manchen +mancher +manches + +mein | my +meine +meinem +meinen +meiner +meines + +mit | with +muss | must +musste | had to +nach | to(wards) +nicht | not +nichts | nothing +noch | still, yet +nun | now +nur | only +ob | whether +oder | or +ohne | without +sehr | very + +sein | his +seine +seinem +seinen +seiner +seines + +selbst | self +sich | herself + +sie | they, she +ihnen | to them + +sind | are +so | so + +solche | such +solchem +solchen +solcher +solches + +soll | shall +sollte | should +sondern | but +sonst | else +über | over +um | about, around +und | and + +uns | us +unse +unsem +unsen +unser +unses + +unter | under +viel | much +vom | von + dem +von | from +vor | before +während | while +war | was +waren | were +warst | wast +was | what +weg | away, off +weil | because +weiter | further + +welche | which +welchem +welchen +welcher +welches + +wenn | when +werde | will +werden | will +wie | how +wieder | again +will | want +wir | we +wird | will +wirst | willst +wo | where +wollen | want +wollte | wanted +würde | would +würden | would +zu | to +zum | zu + dem +zur | zu + der +zwar | indeed +zwischen | between diff --git a/sphinx/search/_stopwords/en.py b/sphinx/search/_stopwords/en.py new file mode 100644 index 0000000000..01bac4cf14 --- /dev/null +++ b/sphinx/search/_stopwords/en.py @@ -0,0 +1,37 @@ +from __future__ import annotations + +ENGLISH_STOPWORDS = frozenset({ + 'a', + 'and', + 'are', + 'as', + 'at', + 'be', + 'but', + 'by', + 'for', + 'if', + 'in', + 'into', + 'is', + 'it', + 'near', + 'no', + 'not', + 'of', + 'on', + 'or', + 'such', + 'that', + 'the', + 'their', + 'then', + 'there', + 'these', + 'they', + 'this', + 'to', + 'was', + 'will', + 'with', +}) diff --git a/sphinx/search/_stopwords/es.py b/sphinx/search/_stopwords/es.py new file mode 100644 index 0000000000..d70b317d03 --- /dev/null +++ b/sphinx/search/_stopwords/es.py @@ -0,0 +1,312 @@ +from __future__ import annotations + +SPANISH_STOPWORDS = frozenset({ + 'a', + 'al', + 'algo', + 'algunas', + 'algunos', + 'ante', + 'antes', + 'como', + 'con', + 'contra', + 'cual', + 'cuando', + 'de', + 'del', + 'desde', + 'donde', + 'durante', + 'e', + 'el', + 'ella', + 'ellas', + 'ellos', + 'en', + 'entre', + 'era', + 'erais', + 'eran', + 'eras', + 'eres', + 'es', + 'esa', + 'esas', + 'ese', + 'eso', + 'esos', + 'esta', + 'estaba', + 'estabais', + 'estaban', + 'estabas', + 'estad', + 'estada', + 'estadas', + 'estado', + 'estados', + 'estamos', + 'estando', + 'estar', + 'estaremos', + 'estará', + 'estarán', + 'estarás', + 'estaré', + 'estaréis', + 'estaría', + 'estaríais', + 'estaríamos', + 'estarían', + 'estarías', + 'estas', + 'este', + 'estemos', + 'esto', + 'estos', + 'estoy', + 'estuve', + 'estuviera', + 'estuvierais', + 'estuvieran', + 'estuvieras', + 'estuvieron', + 'estuviese', + 'estuvieseis', + 'estuviesen', + 'estuvieses', + 'estuvimos', + 'estuviste', + 'estuvisteis', + 'estuviéramos', + 'estuviésemos', + 'estuvo', + 'está', + 'estábamos', + 'estáis', + 'están', + 'estás', + 'esté', + 'estéis', + 'estén', + 'estés', + 'fue', + 'fuera', + 'fuerais', + 'fueran', + 'fueras', + 'fueron', + 'fuese', + 'fueseis', + 'fuesen', + 'fueses', + 'fui', + 'fuimos', + 'fuiste', + 'fuisteis', + 'fuéramos', + 'fuésemos', + 'ha', + 'habida', + 'habidas', + 'habido', + 'habidos', + 'habiendo', + 'habremos', + 'habrá', + 'habrán', + 'habrás', + 'habré', + 'habréis', + 'habría', + 'habríais', + 'habríamos', + 'habrían', + 'habrías', + 'habéis', + 'había', + 'habíais', + 'habíamos', + 'habían', + 'habías', + 'han', + 'has', + 'hasta', + 'hay', + 'haya', + 'hayamos', + 'hayan', + 'hayas', + 'hayáis', + 'he', + 'hemos', + 'hube', + 'hubiera', + 'hubierais', + 'hubieran', + 'hubieras', + 'hubieron', + 'hubiese', + 'hubieseis', + 'hubiesen', + 'hubieses', + 'hubimos', + 'hubiste', + 'hubisteis', + 'hubiéramos', + 'hubiésemos', + 'hubo', + 'la', + 'las', + 'le', + 'les', + 'lo', + 'los', + 'me', + 'mi', + 'mis', + 'mucho', + 'muchos', + 'muy', + 'más', + 'mí', + 'mía', + 'mías', + 'mío', + 'míos', + 'nada', + 'ni', + 'no', + 'nos', + 'nosotras', + 'nosotros', + 'nuestra', + 'nuestras', + 'nuestro', + 'nuestros', + 'o', + 'os', + 'otra', + 'otras', + 'otro', + 'otros', + 'para', + 'pero', + 'poco', + 'por', + 'porque', + 'que', + 'quien', + 'quienes', + 'qué', + 'se', + 'sea', + 'seamos', + 'sean', + 'seas', + 'seremos', + 'será', + 'serán', + 'serás', + 'seré', + 'seréis', + 'sería', + 'seríais', + 'seríamos', + 'serían', + 'serías', + 'seáis', + 'sido', + 'siendo', + 'sin', + 'sobre', + 'sois', + 'somos', + 'son', + 'soy', + 'su', + 'sus', + 'suya', + 'suyas', + 'suyo', + 'suyos', + 'sí', + 'también', + 'tanto', + 'te', + 'tendremos', + 'tendrá', + 'tendrán', + 'tendrás', + 'tendré', + 'tendréis', + 'tendría', + 'tendríais', + 'tendríamos', + 'tendrían', + 'tendrías', + 'tened', + 'tenemos', + 'tenga', + 'tengamos', + 'tengan', + 'tengas', + 'tengo', + 'tengáis', + 'tenida', + 'tenidas', + 'tenido', + 'tenidos', + 'teniendo', + 'tenéis', + 'tenía', + 'teníais', + 'teníamos', + 'tenían', + 'tenías', + 'ti', + 'tiene', + 'tienen', + 'tienes', + 'todo', + 'todos', + 'tu', + 'tus', + 'tuve', + 'tuviera', + 'tuvierais', + 'tuvieran', + 'tuvieras', + 'tuvieron', + 'tuviese', + 'tuvieseis', + 'tuviesen', + 'tuvieses', + 'tuvimos', + 'tuviste', + 'tuvisteis', + 'tuviéramos', + 'tuviésemos', + 'tuvo', + 'tuya', + 'tuyas', + 'tuyo', + 'tuyos', + 'tú', + 'un', + 'una', + 'uno', + 'unos', + 'vosotras', + 'vosotros', + 'vuestra', + 'vuestras', + 'vuestro', + 'vuestros', + 'y', + 'ya', + 'yo', + 'él', + 'éramos', +}) diff --git a/sphinx/search/_stopwords/es.txt b/sphinx/search/_stopwords/es.txt new file mode 100644 index 0000000000..d7047b9316 --- /dev/null +++ b/sphinx/search/_stopwords/es.txt @@ -0,0 +1,338 @@ +|source: https://snowballstem.org/algorithms/spanish/stop.txt +de | from, of +la | the, her +que | who, that +el | the +en | in +y | and +a | to +los | the, them +del | de + el +se | himself, from him etc +las | the, them +por | for, by, etc +un | a +para | for +con | with +no | no +una | a +su | his, her +al | a + el + | es from SER +lo | him +como | how +más | more +pero | pero +sus | su plural +le | to him, her +ya | already +o | or + | fue from SER +este | this + | ha from HABER +sí | himself etc +porque | because +esta | this + | son from SER +entre | between + | está from ESTAR +cuando | when +muy | very +sin | without +sobre | on + | ser from SER + | tiene from TENER +también | also +me | me +hasta | until +hay | there is/are +donde | where + | han from HABER +quien | whom, that + | están from ESTAR + | estado from ESTAR +desde | from +todo | all +nos | us +durante | during + | estados from ESTAR +todos | all +uno | a +les | to them +ni | nor +contra | against +otros | other + | fueron from SER +ese | that +eso | that + | había from HABER +ante | before +ellos | they +e | and (variant of y) +esto | this +mí | me +antes | before +algunos | some +qué | what? +unos | a +yo | I +otro | other +otras | other +otra | other +él | he +tanto | so much, many +esa | that +estos | these +mucho | much, many +quienes | who +nada | nothing +muchos | many +cual | who + | sea from SER +poco | few +ella | she +estar | to be + | haber from HABER +estas | these + | estaba from ESTAR + | estamos from ESTAR +algunas | some +algo | something +nosotros | we + + | other forms + +mi | me +mis | mi plural +tú | thou +te | thee +ti | thee +tu | thy +tus | tu plural +ellas | they +nosotras | we +vosotros | you +vosotras | you +os | you +mío | mine +mía | +míos | +mías | +tuyo | thine +tuya | +tuyos | +tuyas | +suyo | his, hers, theirs +suya | +suyos | +suyas | +nuestro | ours +nuestra | +nuestros | +nuestras | +vuestro | yours +vuestra | +vuestros | +vuestras | +esos | those +esas | those + + | forms of estar, to be (not including the infinitive): +estoy +estás +está +estamos +estáis +están +esté +estés +estemos +estéis +estén +estaré +estarás +estará +estaremos +estaréis +estarán +estaría +estarías +estaríamos +estaríais +estarían +estaba +estabas +estábamos +estabais +estaban +estuve +estuviste +estuvo +estuvimos +estuvisteis +estuvieron +estuviera +estuvieras +estuviéramos +estuvierais +estuvieran +estuviese +estuvieses +estuviésemos +estuvieseis +estuviesen +estando +estado +estada +estados +estadas +estad + + | forms of haber, to have (not including the infinitive): +he +has +ha +hemos +habéis +han +haya +hayas +hayamos +hayáis +hayan +habré +habrás +habrá +habremos +habréis +habrán +habría +habrías +habríamos +habríais +habrían +había +habías +habíamos +habíais +habían +hube +hubiste +hubo +hubimos +hubisteis +hubieron +hubiera +hubieras +hubiéramos +hubierais +hubieran +hubiese +hubieses +hubiésemos +hubieseis +hubiesen +habiendo +habido +habida +habidos +habidas + + | forms of ser, to be (not including the infinitive): +soy +eres +es +somos +sois +son +sea +seas +seamos +seáis +sean +seré +serás +será +seremos +seréis +serán +sería +serías +seríamos +seríais +serían +era +eras +éramos +erais +eran +fui +fuiste +fue +fuimos +fuisteis +fueron +fuera +fueras +fuéramos +fuerais +fueran +fuese +fueses +fuésemos +fueseis +fuesen +siendo +sido + | sed also means 'thirst' + + | forms of tener, to have (not including the infinitive): +tengo +tienes +tiene +tenemos +tenéis +tienen +tenga +tengas +tengamos +tengáis +tengan +tendré +tendrás +tendrá +tendremos +tendréis +tendrán +tendría +tendrías +tendríamos +tendríais +tendrían +tenía +tenías +teníamos +teníais +tenían +tuve +tuviste +tuvo +tuvimos +tuvisteis +tuvieron +tuviera +tuvieras +tuviéramos +tuvierais +tuvieran +tuviese +tuvieses +tuviésemos +tuvieseis +tuviesen +teniendo +tenido +tenida +tenidos +tenidas +tened diff --git a/sphinx/search/_stopwords/fi.py b/sphinx/search/_stopwords/fi.py new file mode 100644 index 0000000000..d7586cba22 --- /dev/null +++ b/sphinx/search/_stopwords/fi.py @@ -0,0 +1,233 @@ +from __future__ import annotations + +FINNISH_STOPWORDS = frozenset({ + 'ei', + 'eivät', + 'emme', + 'en', + 'et', + 'ette', + 'että', + 'he', + 'heidän', + 'heidät', + 'heihin', + 'heille', + 'heillä', + 'heiltä', + 'heissä', + 'heistä', + 'heitä', + 'hän', + 'häneen', + 'hänelle', + 'hänellä', + 'häneltä', + 'hänen', + 'hänessä', + 'hänestä', + 'hänet', + 'häntä', + 'itse', + 'ja', + 'johon', + 'joiden', + 'joihin', + 'joiksi', + 'joilla', + 'joille', + 'joilta', + 'joina', + 'joissa', + 'joista', + 'joita', + 'joka', + 'joksi', + 'jolla', + 'jolle', + 'jolta', + 'jona', + 'jonka', + 'jos', + 'jossa', + 'josta', + 'jota', + 'jotka', + 'kanssa', + 'keiden', + 'keihin', + 'keiksi', + 'keille', + 'keillä', + 'keiltä', + 'keinä', + 'keissä', + 'keistä', + 'keitä', + 'keneen', + 'keneksi', + 'kenelle', + 'kenellä', + 'keneltä', + 'kenen', + 'kenenä', + 'kenessä', + 'kenestä', + 'kenet', + 'ketkä', + 'ketä', + 'koska', + 'kuin', + 'kuka', + 'kun', + 'me', + 'meidän', + 'meidät', + 'meihin', + 'meille', + 'meillä', + 'meiltä', + 'meissä', + 'meistä', + 'meitä', + 'mihin', + 'miksi', + 'mikä', + 'mille', + 'millä', + 'miltä', + 'minkä', + 'minua', + 'minulla', + 'minulle', + 'minulta', + 'minun', + 'minussa', + 'minusta', + 'minut', + 'minuun', + 'minä', + 'missä', + 'mistä', + 'mitkä', + 'mitä', + 'mukaan', + 'mutta', + 'ne', + 'niiden', + 'niihin', + 'niiksi', + 'niille', + 'niillä', + 'niiltä', + 'niin', + 'niinä', + 'niissä', + 'niistä', + 'niitä', + 'noiden', + 'noihin', + 'noiksi', + 'noilla', + 'noille', + 'noilta', + 'noin', + 'noina', + 'noissa', + 'noista', + 'noita', + 'nuo', + 'nyt', + 'näiden', + 'näihin', + 'näiksi', + 'näille', + 'näillä', + 'näiltä', + 'näinä', + 'näissä', + 'näistä', + 'näitä', + 'nämä', + 'ole', + 'olemme', + 'olen', + 'olet', + 'olette', + 'oli', + 'olimme', + 'olin', + 'olisi', + 'olisimme', + 'olisin', + 'olisit', + 'olisitte', + 'olisivat', + 'olit', + 'olitte', + 'olivat', + 'olla', + 'olleet', + 'ollut', + 'on', + 'ovat', + 'poikki', + 'se', + 'sekä', + 'sen', + 'siihen', + 'siinä', + 'siitä', + 'siksi', + 'sille', + 'sillä', + 'siltä', + 'sinua', + 'sinulla', + 'sinulle', + 'sinulta', + 'sinun', + 'sinussa', + 'sinusta', + 'sinut', + 'sinuun', + 'sinä', + 'sitä', + 'tai', + 'te', + 'teidän', + 'teidät', + 'teihin', + 'teille', + 'teillä', + 'teiltä', + 'teissä', + 'teistä', + 'teitä', + 'tuo', + 'tuohon', + 'tuoksi', + 'tuolla', + 'tuolle', + 'tuolta', + 'tuon', + 'tuona', + 'tuossa', + 'tuosta', + 'tuota', + 'tähän', + 'täksi', + 'tälle', + 'tällä', + 'tältä', + 'tämä', + 'tämän', + 'tänä', + 'tässä', + 'tästä', + 'tätä', + 'vaan', + 'vai', + 'vaikka', + 'yli', +}) diff --git a/sphinx/search/_stopwords/fi.txt b/sphinx/search/_stopwords/fi.txt new file mode 100644 index 0000000000..9aff8a7992 --- /dev/null +++ b/sphinx/search/_stopwords/fi.txt @@ -0,0 +1,88 @@ +| source: https://snowballstem.org/algorithms/finnish/stop.txt +| forms of BE + +olla +olen +olet +on +olemme +olette +ovat +ole | negative form + +oli +olisi +olisit +olisin +olisimme +olisitte +olisivat +olit +olin +olimme +olitte +olivat +ollut +olleet + +en | negation +et +ei +emme +ette +eivät + +|Nom Gen Acc Part Iness Elat Illat Adess Ablat Allat Ess Trans +minä minun minut minua minussa minusta minuun minulla minulta minulle | I +sinä sinun sinut sinua sinussa sinusta sinuun sinulla sinulta sinulle | you +hän hänen hänet häntä hänessä hänestä häneen hänellä häneltä hänelle | he she +me meidän meidät meitä meissä meistä meihin meillä meiltä meille | we +te teidän teidät teitä teissä teistä teihin teillä teiltä teille | you +he heidän heidät heitä heissä heistä heihin heillä heiltä heille | they + +tämä tämän tätä tässä tästä tähän tällä tältä tälle tänä täksi | this +tuo tuon tuota tuossa tuosta tuohon tuolla tuolta tuolle tuona tuoksi | that +se sen sitä siinä siitä siihen sillä siltä sille sinä siksi | it +nämä näiden näitä näissä näistä näihin näillä näiltä näille näinä näiksi | these +nuo noiden noita noissa noista noihin noilla noilta noille noina noiksi | those +ne niiden niitä niissä niistä niihin niillä niiltä niille niinä niiksi | they + +kuka kenen kenet ketä kenessä kenestä keneen kenellä keneltä kenelle kenenä keneksi| who +ketkä keiden ketkä keitä keissä keistä keihin keillä keiltä keille keinä keiksi | (pl) +mikä minkä minkä mitä missä mistä mihin millä miltä mille minä miksi | which what +mitkä | (pl) + +joka jonka jota jossa josta johon jolla jolta jolle jona joksi | who which +jotka joiden joita joissa joista joihin joilla joilta joille joina joiksi | (pl) + +| conjunctions + +että | that +ja | and +jos | if +koska | because +kuin | than +mutta | but +niin | so +sekä | and +sillä | for +tai | or +vaan | but +vai | or +vaikka | although + + +| prepositions + +kanssa | with +mukaan | according to +noin | about +poikki | across +yli | over, across + +| other + +kun | when +niin | so +nyt | now +itse | self diff --git a/sphinx/search/_stopwords/fr.py b/sphinx/search/_stopwords/fr.py new file mode 100644 index 0000000000..7dfd86d744 --- /dev/null +++ b/sphinx/search/_stopwords/fr.py @@ -0,0 +1,168 @@ +from __future__ import annotations + +FRENCH_STOPWORDS = frozenset({ + 'ai', + 'aie', + 'aient', + 'aies', + 'ait', + 'as', + 'au', + 'aura', + 'aurai', + 'auraient', + 'aurais', + 'aurait', + 'auras', + 'aurez', + 'auriez', + 'aurions', + 'aurons', + 'auront', + 'aux', + 'avaient', + 'avais', + 'avait', + 'avec', + 'avez', + 'aviez', + 'avions', + 'avons', + 'ayant', + 'ayez', + 'ayons', + 'c', + 'ce', + 'ceci', + 'cela', + 'celà', + 'ces', + 'cet', + 'cette', + 'd', + 'dans', + 'de', + 'des', + 'du', + 'elle', + 'en', + 'es', + 'est', + 'et', + 'eu', + 'eue', + 'eues', + 'eurent', + 'eus', + 'eusse', + 'eussent', + 'eusses', + 'eussiez', + 'eussions', + 'eut', + 'eux', + 'eûmes', + 'eût', + 'eûtes', + 'furent', + 'fus', + 'fusse', + 'fussent', + 'fusses', + 'fussiez', + 'fussions', + 'fut', + 'fûmes', + 'fût', + 'fûtes', + 'ici', + 'il', + 'ils', + 'j', + 'je', + 'l', + 'la', + 'le', + 'les', + 'leur', + 'leurs', + 'lui', + 'm', + 'ma', + 'mais', + 'me', + 'mes', + 'moi', + 'mon', + 'même', + 'n', + 'ne', + 'nos', + 'notre', + 'nous', + 'on', + 'ont', + 'ou', + 'par', + 'pas', + 'pour', + 'qu', + 'que', + 'quel', + 'quelle', + 'quelles', + 'quels', + 'qui', + 's', + 'sa', + 'sans', + 'se', + 'sera', + 'serai', + 'seraient', + 'serais', + 'serait', + 'seras', + 'serez', + 'seriez', + 'serions', + 'serons', + 'seront', + 'ses', + 'soi', + 'soient', + 'sois', + 'soit', + 'sommes', + 'son', + 'sont', + 'soyez', + 'soyons', + 'suis', + 'sur', + 't', + 'ta', + 'te', + 'tes', + 'toi', + 'ton', + 'tu', + 'un', + 'une', + 'vos', + 'votre', + 'vous', + 'y', + 'à', + 'étaient', + 'étais', + 'était', + 'étant', + 'étiez', + 'étions', + 'été', + 'étée', + 'étées', + 'étés', + 'êtes', +}) diff --git a/sphinx/search/_stopwords/fr.txt b/sphinx/search/_stopwords/fr.txt new file mode 100644 index 0000000000..7839ab57c8 --- /dev/null +++ b/sphinx/search/_stopwords/fr.txt @@ -0,0 +1,174 @@ +| source: https://snowballstem.org/algorithms/french/stop.txt +au | a + le +aux | a + les +avec | with +ce | this +ces | these +dans | with +de | of +des | de + les +du | de + le +elle | she +en | `of them' etc +et | and +eux | them +il | he +je | I +la | the +le | the +leur | their +lui | him +ma | my (fem) +mais | but +me | me +même | same; as in moi-même (myself) etc +mes | me (pl) +moi | me +mon | my (masc) +ne | not +nos | our (pl) +notre | our +nous | we +on | one +ou | where +par | by +pas | not +pour | for +qu | que before vowel +que | that +qui | who +sa | his, her (fem) +se | oneself +ses | his (pl) +son | his, her (masc) +sur | on +ta | thy (fem) +te | thee +tes | thy (pl) +toi | thee +ton | thy (masc) +tu | thou +un | a +une | a +vos | your (pl) +votre | your +vous | you + + | single letter forms + +c | c' +d | d' +j | j' +l | l' +à | to, at +m | m' +n | n' +s | s' +t | t' +y | there + + | forms of être (not including the infinitive): +été +étée +étées +étés +étant +suis +es +est +sommes +êtes +sont +serai +seras +sera +serons +serez +seront +serais +serait +serions +seriez +seraient +étais +était +étions +étiez +étaient +fus +fut +fûmes +fûtes +furent +sois +soit +soyons +soyez +soient +fusse +fusses +fût +fussions +fussiez +fussent + + | forms of avoir (not including the infinitive): +ayant +eu +eue +eues +eus +ai +as +avons +avez +ont +aurai +auras +aura +aurons +aurez +auront +aurais +aurait +aurions +auriez +auraient +avais +avait +avions +aviez +avaient +eut +eûmes +eûtes +eurent +aie +aies +ait +ayons +ayez +aient +eusse +eusses +eût +eussions +eussiez +eussent + + | Later additions (from Jean-Christophe Deschamps) +ceci | this +cela | that (added 11 Apr 2012. Omission reported by Adrien Grand) +celà | that (incorrect, though common) +cet | this +cette | this +ici | here +ils | they +les | the (pl) +leurs | their (pl) +quel | which +quels | which +quelle | which +quelles | which +sans | without +soi | oneself diff --git a/sphinx/search/_stopwords/hu.py b/sphinx/search/_stopwords/hu.py new file mode 100644 index 0000000000..83bee011b0 --- /dev/null +++ b/sphinx/search/_stopwords/hu.py @@ -0,0 +1,202 @@ +from __future__ import annotations + +HUNGARIAN_STOPWORDS = frozenset({ + 'a', + 'abban', + 'ahhoz', + 'ahogy', + 'ahol', + 'aki', + 'akik', + 'akkor', + 'alatt', + 'amely', + 'amelyek', + 'amelyekben', + 'amelyeket', + 'amelyet', + 'amelynek', + 'ami', + 'amikor', + 'amit', + 'amolyan', + 'amíg', + 'annak', + 'arra', + 'arról', + 'az', + 'azok', + 'azon', + 'azonban', + 'azt', + 'aztán', + 'azután', + 'azzal', + 'azért', + 'be', + 'belül', + 'benne', + 'bár', + 'cikk', + 'cikkek', + 'cikkeket', + 'csak', + 'de', + 'e', + 'ebben', + 'eddig', + 'egy', + 'egyes', + 'egyetlen', + 'egyik', + 'egyre', + 'egyéb', + 'egész', + 'ehhez', + 'ekkor', + 'el', + 'ellen', + 'első', + 'elég', + 'elő', + 'először', + 'előtt', + 'emilyen', + 'ennek', + 'erre', + 'ez', + 'ezek', + 'ezen', + 'ezt', + 'ezzel', + 'ezért', + 'fel', + 'felé', + 'hanem', + 'hiszen', + 'hogy', + 'hogyan', + 'igen', + 'ill', + 'ill.', + 'illetve', + 'ilyen', + 'ilyenkor', + 'ismét', + 'ison', + 'itt', + 'jobban', + 'jó', + 'jól', + 'kell', + 'kellett', + 'keressünk', + 'keresztül', + 'ki', + 'kívül', + 'között', + 'közül', + 'legalább', + 'legyen', + 'lehet', + 'lehetett', + 'lenne', + 'lenni', + 'lesz', + 'lett', + 'maga', + 'magát', + 'majd', + 'meg', + 'mellett', + 'mely', + 'melyek', + 'mert', + 'mi', + 'mikor', + 'milyen', + 'minden', + 'mindenki', + 'mindent', + 'mindig', + 'mint', + 'mintha', + 'mit', + 'mivel', + 'miért', + 'most', + 'már', + 'más', + 'másik', + 'még', + 'míg', + 'nagy', + 'nagyobb', + 'nagyon', + 'ne', + 'nekem', + 'neki', + 'nem', + 'nincs', + 'néha', + 'néhány', + 'nélkül', + 'olyan', + 'ott', + 'pedig', + 'persze', + 'rá', + 's', + 'saját', + 'sem', + 'semmi', + 'sok', + 'sokat', + 'sokkal', + 'szemben', + 'szerint', + 'szinte', + 'számára', + 'talán', + 'tehát', + 'teljes', + 'tovább', + 'továbbá', + 'több', + 'ugyanis', + 'utolsó', + 'után', + 'utána', + 'vagy', + 'vagyis', + 'vagyok', + 'valaki', + 'valami', + 'valamint', + 'való', + 'van', + 'vannak', + 'vele', + 'vissza', + 'viszont', + 'volna', + 'volt', + 'voltak', + 'voltam', + 'voltunk', + 'által', + 'általában', + 'át', + 'én', + 'éppen', + 'és', + 'így', + 'össze', + 'úgy', + 'új', + 'újabb', + 'újra', + 'ő', + 'ők', + 'őket', +}) diff --git a/sphinx/search/_stopwords/hu.txt b/sphinx/search/_stopwords/hu.txt new file mode 100644 index 0000000000..658c6194f2 --- /dev/null +++ b/sphinx/search/_stopwords/hu.txt @@ -0,0 +1,201 @@ +| source: https://snowballstem.org/algorithms/hungarian/stop.txt +| prepared by Anna Tordai +a +ahogy +ahol +aki +akik +akkor +alatt +által +általában +amely +amelyek +amelyekben +amelyeket +amelyet +amelynek +ami +amit +amolyan +amíg +amikor +át +abban +ahhoz +annak +arra +arról +az +azok +azon +azt +azzal +azért +aztán +azután +azonban +bár +be +belül +benne +cikk +cikkek +cikkeket +csak +de +e +eddig +egész +egy +egyes +egyetlen +egyéb +egyik +egyre +ekkor +el +elég +ellen +elő +először +előtt +első +én +éppen +ebben +ehhez +emilyen +ennek +erre +ez +ezt +ezek +ezen +ezzel +ezért +és +fel +felé +hanem +hiszen +hogy +hogyan +igen +így +illetve +ill. +ill +ilyen +ilyenkor +ison +ismét +itt +jó +jól +jobban +kell +kellett +keresztül +keressünk +ki +kívül +között +közül +legalább +lehet +lehetett +legyen +lenne +lenni +lesz +lett +maga +magát +majd +majd +már +más +másik +meg +még +mellett +mert +mely +melyek +mi +mit +míg +miért +milyen +mikor +minden +mindent +mindenki +mindig +mint +mintha +mivel +most +nagy +nagyobb +nagyon +ne +néha +nekem +neki +nem +néhány +nélkül +nincs +olyan +ott +össze +ő +ők +őket +pedig +persze +rá +s +saját +sem +semmi +sok +sokat +sokkal +számára +szemben +szerint +szinte +talán +tehát +teljes +tovább +továbbá +több +úgy +ugyanis +új +újabb +újra +után +utána +utolsó +vagy +vagyis +valaki +valami +valamint +való +vagyok +van +vannak +volt +voltam +voltak +voltunk +vissza +vele +viszont +volna diff --git a/sphinx/search/_stopwords/it.py b/sphinx/search/_stopwords/it.py new file mode 100644 index 0000000000..4b0f522ac9 --- /dev/null +++ b/sphinx/search/_stopwords/it.py @@ -0,0 +1,282 @@ +from __future__ import annotations + +ITALIAN_STOPWORDS = frozenset({ + 'a', + 'abbia', + 'abbiamo', + 'abbiano', + 'abbiate', + 'ad', + 'agl', + 'agli', + 'ai', + 'al', + 'all', + 'alla', + 'alle', + 'allo', + 'anche', + 'avemmo', + 'avendo', + 'avesse', + 'avessero', + 'avessi', + 'avessimo', + 'aveste', + 'avesti', + 'avete', + 'aveva', + 'avevamo', + 'avevano', + 'avevate', + 'avevi', + 'avevo', + 'avrai', + 'avranno', + 'avrebbe', + 'avrebbero', + 'avrei', + 'avremmo', + 'avremo', + 'avreste', + 'avresti', + 'avrete', + 'avrà', + 'avrò', + 'avuta', + 'avute', + 'avuti', + 'avuto', + 'c', + 'che', + 'chi', + 'ci', + 'coi', + 'col', + 'come', + 'con', + 'contro', + 'cui', + 'da', + 'dagl', + 'dagli', + 'dai', + 'dal', + 'dall', + 'dalla', + 'dalle', + 'dallo', + 'degl', + 'degli', + 'dei', + 'del', + 'dell', + 'della', + 'delle', + 'dello', + 'di', + 'dov', + 'dove', + 'e', + 'ebbe', + 'ebbero', + 'ebbi', + 'ed', + 'era', + 'erano', + 'eravamo', + 'eravate', + 'eri', + 'ero', + 'essendo', + 'faccia', + 'facciamo', + 'facciano', + 'facciate', + 'faccio', + 'facemmo', + 'facendo', + 'facesse', + 'facessero', + 'facessi', + 'facessimo', + 'faceste', + 'facesti', + 'faceva', + 'facevamo', + 'facevano', + 'facevate', + 'facevi', + 'facevo', + 'fai', + 'fanno', + 'farai', + 'faranno', + 'farebbe', + 'farebbero', + 'farei', + 'faremmo', + 'faremo', + 'fareste', + 'faresti', + 'farete', + 'farà', + 'farò', + 'fece', + 'fecero', + 'feci', + 'fosse', + 'fossero', + 'fossi', + 'fossimo', + 'foste', + 'fosti', + 'fu', + 'fui', + 'fummo', + 'furono', + 'gli', + 'ha', + 'hai', + 'hanno', + 'ho', + 'i', + 'il', + 'in', + 'io', + 'l', + 'la', + 'le', + 'lei', + 'li', + 'lo', + 'loro', + 'lui', + 'ma', + 'mi', + 'mia', + 'mie', + 'miei', + 'mio', + 'ne', + 'negl', + 'negli', + 'nei', + 'nel', + 'nell', + 'nella', + 'nelle', + 'nello', + 'noi', + 'non', + 'nostra', + 'nostre', + 'nostri', + 'nostro', + 'o', + 'per', + 'perché', + 'più', + 'quale', + 'quanta', + 'quante', + 'quanti', + 'quanto', + 'quella', + 'quelle', + 'quelli', + 'quello', + 'questa', + 'queste', + 'questi', + 'questo', + 'sarai', + 'saranno', + 'sarebbe', + 'sarebbero', + 'sarei', + 'saremmo', + 'saremo', + 'sareste', + 'saresti', + 'sarete', + 'sarà', + 'sarò', + 'se', + 'sei', + 'si', + 'sia', + 'siamo', + 'siano', + 'siate', + 'siete', + 'sono', + 'sta', + 'stai', + 'stanno', + 'starai', + 'staranno', + 'starebbe', + 'starebbero', + 'starei', + 'staremmo', + 'staremo', + 'stareste', + 'staresti', + 'starete', + 'starà', + 'starò', + 'stava', + 'stavamo', + 'stavano', + 'stavate', + 'stavi', + 'stavo', + 'stemmo', + 'stesse', + 'stessero', + 'stessi', + 'stessimo', + 'steste', + 'stesti', + 'stette', + 'stettero', + 'stetti', + 'stia', + 'stiamo', + 'stiano', + 'stiate', + 'sto', + 'su', + 'sua', + 'sue', + 'sugl', + 'sugli', + 'sui', + 'sul', + 'sull', + 'sulla', + 'sulle', + 'sullo', + 'suo', + 'suoi', + 'ti', + 'tra', + 'tu', + 'tua', + 'tue', + 'tuo', + 'tuoi', + 'tutti', + 'tutto', + 'un', + 'una', + 'uno', + 'vi', + 'voi', + 'vostra', + 'vostre', + 'vostri', + 'vostro', + 'è', +}) diff --git a/sphinx/search/_stopwords/it.txt b/sphinx/search/_stopwords/it.txt new file mode 100644 index 0000000000..c877683611 --- /dev/null +++ b/sphinx/search/_stopwords/it.txt @@ -0,0 +1,291 @@ +| source: https://snowballstem.org/algorithms/italian/stop.txt +ad | a (to) before vowel +al | a + il +allo | a + lo +ai | a + i +agli | a + gli +all | a + l' +agl | a + gl' +alla | a + la +alle | a + le +con | with +col | con + il +coi | con + i (forms collo, cogli etc are now very rare) +da | from +dal | da + il +dallo | da + lo +dai | da + i +dagli | da + gli +dall | da + l' +dagl | da + gll' +dalla | da + la +dalle | da + le +di | of +del | di + il +dello | di + lo +dei | di + i +degli | di + gli +dell | di + l' +degl | di + gl' +della | di + la +delle | di + le +in | in +nel | in + el +nello | in + lo +nei | in + i +negli | in + gli +nell | in + l' +negl | in + gl' +nella | in + la +nelle | in + le +su | on +sul | su + il +sullo | su + lo +sui | su + i +sugli | su + gli +sull | su + l' +sugl | su + gl' +sulla | su + la +sulle | su + le +per | through, by +tra | among +contro | against +io | I +tu | thou +lui | he +lei | she +noi | we +voi | you +loro | they +mio | my +mia | +miei | +mie | +tuo | +tua | +tuoi | thy +tue | +suo | +sua | +suoi | his, her +sue | +nostro | our +nostra | +nostri | +nostre | +vostro | your +vostra | +vostri | +vostre | +mi | me +ti | thee +ci | us, there +vi | you, there +lo | him, the +la | her, the +li | them +le | them, the +gli | to him, the +ne | from there etc +il | the +un | a +uno | a +una | a +ma | but +ed | and +se | if +perché | why, because +anche | also +come | how +dov | where (as dov') +dove | where +che | who, that +chi | who +cui | whom +non | not +più | more +quale | who, that +quanto | how much +quanti | +quanta | +quante | +quello | that +quelli | +quella | +quelle | +questo | this +questi | +questa | +queste | +si | yes +tutto | all +tutti | all + + | single letter forms: + +a | at +c | as c' for ce or ci +e | and +i | the +l | as l' +o | or + + | forms of avere, to have (not including the infinitive): + +ho +hai +ha +abbiamo +avete +hanno +abbia +abbiate +abbiano +avrò +avrai +avrà +avremo +avrete +avranno +avrei +avresti +avrebbe +avremmo +avreste +avrebbero +avevo +avevi +aveva +avevamo +avevate +avevano +ebbi +avesti +ebbe +avemmo +aveste +ebbero +avessi +avesse +avessimo +avessero +avendo +avuto +avuta +avuti +avute + + | forms of essere, to be (not including the infinitive): +sono +sei +è +siamo +siete +sia +siate +siano +sarò +sarai +sarà +saremo +sarete +saranno +sarei +saresti +sarebbe +saremmo +sareste +sarebbero +ero +eri +era +eravamo +eravate +erano +fui +fosti +fu +fummo +foste +furono +fossi +fosse +fossimo +fossero +essendo + + | forms of fare, to do (not including the infinitive, fa, fat-): +faccio +fai +facciamo +fanno +faccia +facciate +facciano +farò +farai +farà +faremo +farete +faranno +farei +faresti +farebbe +faremmo +fareste +farebbero +facevo +facevi +faceva +facevamo +facevate +facevano +feci +facesti +fece +facemmo +faceste +fecero +facessi +facesse +facessimo +facessero +facendo + + | forms of stare, to be (not including the infinitive): +sto +stai +sta +stiamo +stanno +stia +stiate +stiano +starò +starai +starà +staremo +starete +staranno +starei +staresti +starebbe +staremmo +stareste +starebbero +stavo +stavi +stava +stavamo +stavate +stavano +stetti +stesti +stette +stemmo +steste +stettero +stessi +stesse +stessimo +stessero diff --git a/sphinx/search/_stopwords/nl.py b/sphinx/search/_stopwords/nl.py new file mode 100644 index 0000000000..1742ec8dad --- /dev/null +++ b/sphinx/search/_stopwords/nl.py @@ -0,0 +1,105 @@ +from __future__ import annotations + +DUTCH_STOPWORDS = frozenset({ + 'aan', + 'al', + 'alles', + 'als', + 'altijd', + 'andere', + 'ben', + 'bij', + 'daar', + 'dan', + 'dat', + 'de', + 'der', + 'deze', + 'die', + 'dit', + 'doch', + 'doen', + 'door', + 'dus', + 'een', + 'eens', + 'en', + 'er', + 'ge', + 'geen', + 'geweest', + 'haar', + 'had', + 'heb', + 'hebben', + 'heeft', + 'hem', + 'het', + 'hier', + 'hij', + 'hoe', + 'hun', + 'iemand', + 'iets', + 'ik', + 'in', + 'is', + 'ja', + 'je', + 'kan', + 'kon', + 'kunnen', + 'maar', + 'me', + 'meer', + 'men', + 'met', + 'mij', + 'mijn', + 'moet', + 'na', + 'naar', + 'niet', + 'niets', + 'nog', + 'nu', + 'of', + 'om', + 'omdat', + 'onder', + 'ons', + 'ook', + 'op', + 'over', + 'reeds', + 'te', + 'tegen', + 'toch', + 'toen', + 'tot', + 'u', + 'uit', + 'uw', + 'van', + 'veel', + 'voor', + 'want', + 'waren', + 'was', + 'wat', + 'werd', + 'wezen', + 'wie', + 'wil', + 'worden', + 'wordt', + 'zal', + 'ze', + 'zelf', + 'zich', + 'zij', + 'zijn', + 'zo', + 'zonder', + 'zou', +}) diff --git a/sphinx/search/_stopwords/nl.txt b/sphinx/search/_stopwords/nl.txt new file mode 100644 index 0000000000..64336d0623 --- /dev/null +++ b/sphinx/search/_stopwords/nl.txt @@ -0,0 +1,102 @@ +| source: https://snowballstem.org/algorithms/dutch/stop.txt +de | the +en | and +van | of, from +ik | I, the ego +te | (1) chez, at etc, (2) to, (3) too +dat | that, which +die | that, those, who, which +in | in, inside +een | a, an, one +hij | he +het | the, it +niet | not, nothing, naught +zijn | (1) to be, being, (2) his, one's, its +is | is +was | (1) was, past tense of all persons sing. of 'zijn' (to be) (2) wax, (3) the washing, (4) rise of river +op | on, upon, at, in, up, used up +aan | on, upon, to (as dative) +met | with, by +als | like, such as, when +voor | (1) before, in front of, (2) furrow +had | had, past tense all persons sing. of 'hebben' (have) +er | there +maar | but, only +om | round, about, for etc +hem | him +dan | then +zou | should/would, past tense all persons sing. of 'zullen' +of | or, whether, if +wat | what, something, anything +mijn | possessive and noun 'mine' +men | people, 'one' +dit | this +zo | so, thus, in this way +door | through by +over | over, across +ze | she, her, they, them +zich | oneself +bij | (1) a bee, (2) by, near, at +ook | also, too +tot | till, until +je | you +mij | me +uit | out of, from +der | Old Dutch form of 'van der' still found in surnames +daar | (1) there, (2) because +haar | (1) her, their, them, (2) hair +naar | (1) unpleasant, unwell etc, (2) towards, (3) as +heb | present first person sing. of 'to have' +hoe | how, why +heeft | present third person sing. of 'to have' +hebben | 'to have' and various parts thereof +deze | this +u | you +want | (1) for, (2) mitten, (3) rigging +nog | yet, still +zal | 'shall', first and third person sing. of verb 'zullen' (will) +me | me +zij | she, they +nu | now +ge | 'thou', still used in Belgium and south Netherlands +geen | none +omdat | because +iets | something, somewhat +worden | to become, grow, get +toch | yet, still +al | all, every, each +waren | (1) 'were' (2) to wander, (3) wares, (3) +veel | much, many +meer | (1) more, (2) lake +doen | to do, to make +toen | then, when +moet | noun 'spot/mote' and present form of 'to must' +ben | (1) am, (2) 'are' in interrogative second person singular of 'to be' +zonder | without +kan | noun 'can' and present form of 'to be able' +hun | their, them +dus | so, consequently +alles | all, everything, anything +onder | under, beneath +ja | yes, of course +eens | once, one day +hier | here +wie | who +werd | imperfect third person sing. of 'become' +altijd | always +doch | yet, but etc +wordt | present third person sing. of 'become' +wezen | (1) to be, (2) 'been' as in 'been fishing', (3) orphans +kunnen | to be able +ons | us/our +zelf | self +tegen | against, towards, at +na | after, near +reeds | already +wil | (1) present tense of 'want', (2) 'will', noun, (3) fender +kon | could; past tense of 'to be able' +niets | nothing +uw | your +iemand | somebody +geweest | been; past participle of 'be' +andere | other diff --git a/sphinx/search/_stopwords/no.py b/sphinx/search/_stopwords/no.py new file mode 100644 index 0000000000..9b9bfbea4c --- /dev/null +++ b/sphinx/search/_stopwords/no.py @@ -0,0 +1,176 @@ +from __future__ import annotations + +NORWEGIAN_STOPWORDS = frozenset({ + 'alle', + 'at', + 'av', + 'bare', + 'begge', + 'ble', + 'blei', + 'bli', + 'blir', + 'blitt', + 'både', + 'båe', + 'da', + 'de', + 'deg', + 'dei', + 'deim', + 'deira', + 'deires', + 'dem', + 'den', + 'denne', + 'der', + 'dere', + 'deres', + 'det', + 'dette', + 'di', + 'din', + 'disse', + 'ditt', + 'du', + 'dykk', + 'dykkar', + 'då', + 'eg', + 'ein', + 'eit', + 'eitt', + 'eller', + 'elles', + 'en', + 'enn', + 'er', + 'et', + 'ett', + 'etter', + 'for', + 'fordi', + 'fra', + 'før', + 'ha', + 'hadde', + 'han', + 'hans', + 'har', + 'hennar', + 'henne', + 'hennes', + 'her', + 'hjå', + 'ho', + 'hoe', + 'honom', + 'hoss', + 'hossen', + 'hun', + 'hva', + 'hvem', + 'hver', + 'hvilke', + 'hvilken', + 'hvis', + 'hvor', + 'hvordan', + 'hvorfor', + 'i', + 'ikke', + 'ikkje', + 'ingen', + 'ingi', + 'inkje', + 'inn', + 'inni', + 'ja', + 'jeg', + 'kan', + 'kom', + 'korleis', + 'korso', + 'kun', + 'kunne', + 'kva', + 'kvar', + 'kvarhelst', + 'kven', + 'kvi', + 'kvifor', + 'man', + 'mange', + 'me', + 'med', + 'medan', + 'meg', + 'meget', + 'mellom', + 'men', + 'mi', + 'min', + 'mine', + 'mitt', + 'mot', + 'mykje', + 'ned', + 'no', + 'noe', + 'noen', + 'noka', + 'noko', + 'nokon', + 'nokor', + 'nokre', + 'nå', + 'når', + 'og', + 'også', + 'om', + 'opp', + 'oss', + 'over', + 'på', + 'samme', + 'seg', + 'selv', + 'si', + 'sia', + 'sidan', + 'siden', + 'sin', + 'sine', + 'sitt', + 'sjøl', + 'skal', + 'skulle', + 'slik', + 'so', + 'som', + 'somme', + 'somt', + 'så', + 'sånn', + 'til', + 'um', + 'upp', + 'ut', + 'uten', + 'var', + 'vart', + 'varte', + 'ved', + 'vere', + 'verte', + 'vi', + 'vil', + 'ville', + 'vore', + 'vors', + 'vort', + 'vår', + 'være', + 'vært', + 'å', +}) diff --git a/sphinx/search/_stopwords/no.txt b/sphinx/search/_stopwords/no.txt new file mode 100644 index 0000000000..552ad326a5 --- /dev/null +++ b/sphinx/search/_stopwords/no.txt @@ -0,0 +1,177 @@ +| source: https://snowballstem.org/algorithms/norwegian/stop.txt +og | and +i | in +jeg | I +det | it/this/that +at | to (w. inf.) +en | a/an +et | a/an +den | it/this/that +til | to +er | is/am/are +som | who/that +på | on +de | they / you(formal) +med | with +han | he +av | of +ikke | not +ikkje | not * +der | there +så | so +var | was/were +meg | me +seg | you +men | but +ett | one +har | have +om | about +vi | we +min | my +mitt | my +ha | have +hadde | had +hun | she +nå | now +over | over +da | when/as +ved | by/know +fra | from +du | you +ut | out +sin | your +dem | them +oss | us +opp | up +man | you/one +kan | can +hans | his +hvor | where +eller | or +hva | what +skal | shall/must +selv | self (reflective) +sjøl | self (reflective) +her | here +alle | all +vil | will +bli | become +ble | became +blei | became * +blitt | have become +kunne | could +inn | in +når | when +være | be +kom | come +noen | some +noe | some +ville | would +dere | you +som | who/which/that +deres | their/theirs +kun | only/just +ja | yes +etter | after +ned | down +skulle | should +denne | this +for | for/because +deg | you +si | hers/his +sine | hers/his +sitt | hers/his +mot | against +å | to +meget | much +hvorfor | why +dette | this +disse | these/those +uten | without +hvordan | how +ingen | none +din | your +ditt | your +blir | become +samme | same +hvilken | which +hvilke | which (plural) +sånn | such a +inni | inside/within +mellom | between +vår | our +hver | each +hvem | who +vors | us/ours +hvis | whose +både | both +bare | only/just +enn | than +fordi | as/because +før | before +mange | many +også | also +slik | just +vært | been +være | to be +båe | both * +begge | both +siden | since +dykk | your * +dykkar | yours * +dei | they * +deira | them * +deires | theirs * +deim | them * +di | your (fem.) * +då | as/when * +eg | I * +ein | a/an * +eit | a/an * +eitt | a/an * +elles | or * +honom | he * +hjå | at * +ho | she * +hoe | she * +henne | her +hennar | her/hers +hennes | hers +hoss | how * +hossen | how * +ikkje | not * +ingi | noone * +inkje | noone * +korleis | how * +korso | how * +kva | what/which * +kvar | where * +kvarhelst | where * +kven | who/whom * +kvi | why * +kvifor | why * +me | we * +medan | while * +mi | my * +mine | my * +mykje | much * +no | now * +nokon | some (masc./neut.) * +noka | some (fem.) * +nokor | some * +noko | some * +nokre | some * +si | his/hers * +sia | since * +sidan | since * +so | so * +somt | some * +somme | some * +um | about* +upp | up * +vere | be * +vore | was * +verte | become * +vort | become * +varte | became * +vart | became * diff --git a/sphinx/search/_stopwords/pt.py b/sphinx/search/_stopwords/pt.py new file mode 100644 index 0000000000..b79799d42a --- /dev/null +++ b/sphinx/search/_stopwords/pt.py @@ -0,0 +1,207 @@ +from __future__ import annotations + +PORTUGUESE_STOPWORDS = frozenset({ + 'a', + 'ao', + 'aos', + 'aquela', + 'aquelas', + 'aquele', + 'aqueles', + 'aquilo', + 'as', + 'até', + 'com', + 'como', + 'da', + 'das', + 'de', + 'dela', + 'delas', + 'dele', + 'deles', + 'depois', + 'do', + 'dos', + 'e', + 'ela', + 'elas', + 'ele', + 'eles', + 'em', + 'entre', + 'era', + 'eram', + 'essa', + 'essas', + 'esse', + 'esses', + 'esta', + 'estamos', + 'estas', + 'estava', + 'estavam', + 'este', + 'esteja', + 'estejam', + 'estejamos', + 'estes', + 'esteve', + 'estive', + 'estivemos', + 'estiver', + 'estivera', + 'estiveram', + 'estiverem', + 'estivermos', + 'estivesse', + 'estivessem', + 'estivéramos', + 'estivéssemos', + 'estou', + 'está', + 'estávamos', + 'estão', + 'eu', + 'foi', + 'fomos', + 'for', + 'fora', + 'foram', + 'forem', + 'formos', + 'fosse', + 'fossem', + 'fui', + 'fôramos', + 'fôssemos', + 'haja', + 'hajam', + 'hajamos', + 'havemos', + 'hei', + 'houve', + 'houvemos', + 'houver', + 'houvera', + 'houveram', + 'houverei', + 'houverem', + 'houveremos', + 'houveria', + 'houveriam', + 'houvermos', + 'houverá', + 'houverão', + 'houveríamos', + 'houvesse', + 'houvessem', + 'houvéramos', + 'houvéssemos', + 'há', + 'hão', + 'isso', + 'isto', + 'já', + 'lhe', + 'lhes', + 'mais', + 'mas', + 'me', + 'mesmo', + 'meu', + 'meus', + 'minha', + 'minhas', + 'muito', + 'na', + 'nas', + 'nem', + 'no', + 'nos', + 'nossa', + 'nossas', + 'nosso', + 'nossos', + 'num', + 'numa', + 'não', + 'nós', + 'o', + 'os', + 'ou', + 'para', + 'pela', + 'pelas', + 'pelo', + 'pelos', + 'por', + 'qual', + 'quando', + 'que', + 'quem', + 'se', + 'seja', + 'sejam', + 'sejamos', + 'sem', + 'serei', + 'seremos', + 'seria', + 'seriam', + 'será', + 'serão', + 'seríamos', + 'seu', + 'seus', + 'somos', + 'sou', + 'sua', + 'suas', + 'são', + 'só', + 'também', + 'te', + 'tem', + 'temos', + 'tenha', + 'tenham', + 'tenhamos', + 'tenho', + 'terei', + 'teremos', + 'teria', + 'teriam', + 'terá', + 'terão', + 'teríamos', + 'teu', + 'teus', + 'teve', + 'tinha', + 'tinham', + 'tive', + 'tivemos', + 'tiver', + 'tivera', + 'tiveram', + 'tiverem', + 'tivermos', + 'tivesse', + 'tivessem', + 'tivéramos', + 'tivéssemos', + 'tu', + 'tua', + 'tuas', + 'tém', + 'tínhamos', + 'um', + 'uma', + 'você', + 'vocês', + 'vos', + 'à', + 'às', + 'éramos', +}) diff --git a/sphinx/search/_stopwords/pt.txt b/sphinx/search/_stopwords/pt.txt new file mode 100644 index 0000000000..5ef15633d8 --- /dev/null +++ b/sphinx/search/_stopwords/pt.txt @@ -0,0 +1,236 @@ +| source: https://snowballstem.org/algorithms/portuguese/stop.txt +de | of, from +a | the; to, at; her +o | the; him +que | who, that +e | and +do | de + o +da | de + a +em | in +um | a +para | for + | é from SER +com | with +não | not, no +uma | a +os | the; them +no | em + o +se | himself etc +na | em + a +por | for +mais | more +as | the; them +dos | de + os +como | as, like +mas | but + | foi from SER +ao | a + o +ele | he +das | de + as + | tem from TER +à | a + a +seu | his +sua | her +ou | or + | ser from SER +quando | when +muito | much + | há from HAV +nos | em + os; us +já | already, now + | está from EST +eu | I +também | also +só | only, just +pelo | per + o +pela | per + a +até | up to +isso | that +ela | he +entre | between + | era from SER +depois | after +sem | without +mesmo | same +aos | a + os + | ter from TER +seus | his +quem | whom +nas | em + as +me | me +esse | that +eles | they + | estão from EST +você | you + | tinha from TER + | foram from SER +essa | that +num | em + um +nem | nor +suas | her +meu | my +às | a + as +minha | my + | têm from TER +numa | em + uma +pelos | per + os +elas | they + | havia from HAV + | seja from SER +qual | which + | será from SER +nós | we + | tenho from TER +lhe | to him, her +deles | of them +essas | those +esses | those +pelas | per + as +este | this + | fosse from SER +dele | of him + + | other words. There are many contractions such as naquele = em+aquele, + | mo = me+o, but they are rare. + | Indefinite article plural forms are also rare. + +tu | thou +te | thee +vocês | you (plural) +vos | you +lhes | to them +meus | my +minhas +teu | thy +tua +teus +tuas +nosso | our +nossa +nossos +nossas + +dela | of her +delas | of them + +esta | this +estes | these +estas | these +aquele | that +aquela | that +aqueles | those +aquelas | those +isto | this +aquilo | that + + | forms of estar, to be (not including the infinitive): +estou +está +estamos +estão +estive +esteve +estivemos +estiveram +estava +estávamos +estavam +estivera +estivéramos +esteja +estejamos +estejam +estivesse +estivéssemos +estivessem +estiver +estivermos +estiverem + + | forms of haver, to have (not including the infinitive): +hei +há +havemos +hão +houve +houvemos +houveram +houvera +houvéramos +haja +hajamos +hajam +houvesse +houvéssemos +houvessem +houver +houvermos +houverem +houverei +houverá +houveremos +houverão +houveria +houveríamos +houveriam + + | forms of ser, to be (not including the infinitive): +sou +somos +são +era +éramos +eram +fui +foi +fomos +foram +fora +fôramos +seja +sejamos +sejam +fosse +fôssemos +fossem +for +formos +forem +serei +será +seremos +serão +seria +seríamos +seriam + + | forms of ter, to have (not including the infinitive): +tenho +tem +temos +tém +tinha +tínhamos +tinham +tive +teve +tivemos +tiveram +tivera +tivéramos +tenha +tenhamos +tenham +tivesse +tivéssemos +tivessem +tiver +tivermos +tiverem +terei +terá +teremos +terão +teria +teríamos +teriam diff --git a/sphinx/search/_stopwords/ru.py b/sphinx/search/_stopwords/ru.py new file mode 100644 index 0000000000..cc275d5184 --- /dev/null +++ b/sphinx/search/_stopwords/ru.py @@ -0,0 +1,163 @@ +from __future__ import annotations + +RUSSIAN_STOPWORDS = frozenset({ + 'а', + 'без', + 'более', + 'больше', + 'будет', + 'будто', + 'бы', + 'был', + 'была', + 'были', + 'было', + 'быть', + 'в', + 'вам', + 'вас', + 'вдруг', + 'ведь', + 'во', + 'вот', + 'впрочем', + 'все', + 'всегда', + 'всего', + 'всех', + 'всю', + 'вы', + 'где', + 'говорил', + 'да', + 'даже', + 'два', + 'для', + 'до', + 'другой', + 'его', + 'ее', + 'ей', + 'ему', + 'если', + 'есть', + 'еще', + 'ж', + 'же', + 'жизнь', + 'за', + 'зачем', + 'здесь', + 'и', + 'из', + 'или', + 'им', + 'иногда', + 'их', + 'к', + 'кажется', + 'как', + 'какая', + 'какой', + 'когда', + 'конечно', + 'кто', + 'куда', + 'ли', + 'лучше', + 'между', + 'меня', + 'мне', + 'много', + 'может', + 'можно', + 'мой', + 'моя', + 'мы', + 'на', + 'над', + 'надо', + 'наконец', + 'нас', + 'не', + 'него', + 'нее', + 'ней', + 'нельзя', + 'нет', + 'ни', + 'нибудь', + 'никогда', + 'ним', + 'них', + 'ничего', + 'но', + 'ну', + 'о', + 'об', + 'один', + 'он', + 'она', + 'они', + 'опять', + 'от', + 'перед', + 'по', + 'под', + 'после', + 'потом', + 'потому', + 'почти', + 'при', + 'про', + 'раз', + 'разве', + 'с', + 'сам', + 'свою', + 'себе', + 'себя', + 'сегодня', + 'сейчас', + 'сказал', + 'сказала', + 'сказать', + 'со', + 'совсем', + 'так', + 'такой', + 'там', + 'тебя', + 'тем', + 'теперь', + 'то', + 'тогда', + 'того', + 'тоже', + 'только', + 'том', + 'тот', + 'три', + 'тут', + 'ты', + 'у', + 'уж', + 'уже', + 'хорошо', + 'хоть', + 'чего', + 'человек', + 'чем', + 'через', + 'что', + 'чтоб', + 'чтобы', + 'чуть', + 'эти', + 'этого', + 'этой', + 'этом', + 'этот', + 'эту', + 'я', +}) diff --git a/sphinx/search/_stopwords/ru.txt b/sphinx/search/_stopwords/ru.txt new file mode 100644 index 0000000000..43a73af0b5 --- /dev/null +++ b/sphinx/search/_stopwords/ru.txt @@ -0,0 +1,226 @@ +| source: https://snowballstem.org/algorithms/russian/stop.txt +и | and +в | in/into +во | alternative form +не | not +что | what/that +он | he +на | on/onto +я | i +с | from +со | alternative form +как | how +а | milder form of `no' (but) +то | conjunction and form of `that' +все | all +она | she +так | so, thus +его | him +но | but +да | yes/and +ты | thou +к | towards, by +у | around, chez +же | intensifier particle +вы | you +за | beyond, behind +бы | conditional/subj. particle +по | up to, along +только | only +ее | her +мне | to me +было | it was +вот | here is/are, particle +от | away from +меня | me +еще | still, yet, more +нет | no, there isnt/arent +о | about +из | out of +ему | to him +теперь | now +когда | when +даже | even +ну | so, well +вдруг | suddenly +ли | interrogative particle +если | if +уже | already, but homonym of `narrower' +или | or +ни | neither +быть | to be +был | he was +него | prepositional form of его +до | up to +вас | you accusative +нибудь | indef. suffix preceded by hyphen +опять | again +уж | already, but homonym of `adder' +вам | to you +сказал | he said +ведь | particle `after all' +там | there +потом | then +себя | oneself +ничего | nothing +ей | to her +может | usually with `быть' as `maybe' +они | they +тут | here +где | where +есть | there is/are +надо | got to, must +ней | prepositional form of ей +для | for +мы | we +тебя | thee +их | them, their +чем | than +была | she was +сам | self +чтоб | in order to +без | without +будто | as if +человек | man, person, one +чего | genitive form of `what' +раз | once +тоже | also +себе | to oneself +под | beneath +жизнь | life +будет | will be +ж | short form of intensifer particle `же' +тогда | then +кто | who +этот | this +говорил | was saying +того | genitive form of `that' +потому | for that reason +этого | genitive form of `this' +какой | which +совсем | altogether +ним | prepositional form of `его', `они' +здесь | here +этом | prepositional form of `этот' +один | one +почти | almost +мой | my +тем | instrumental/dative plural of `тот', `то' +чтобы | full form of `in order that' +нее | her (acc.) +кажется | it seems +сейчас | now +были | they were +куда | where to +зачем | why +сказать | to say +всех | all (acc., gen. preposn. plural) +никогда | never +сегодня | today +можно | possible, one can +при | by +наконец | finally +два | two +об | alternative form of `о', about +другой | another +хоть | even +после | after +над | above +больше | more +тот | that one (masc.) +через | across, in +эти | these +нас | us +про | about +всего | in all, only, of all +них | prepositional form of `они' (they) +какая | which, feminine +много | lots +разве | interrogative particle +сказала | she said +три | three +эту | this, acc. fem. sing. +моя | my, feminine +впрочем | moreover, besides +хорошо | good +свою | ones own, acc. fem. sing. +этой | oblique form of `эта', fem. `this' +перед | in front of +иногда | sometimes +лучше | better +чуть | a little +том | preposn. form of `that one' +нельзя | one must not +такой | such a one +им | to them +более | more +всегда | always +конечно | of course +всю | acc. fem. sing of `all' +между | between + + + | b: some paradigms + | + | personal pronouns + | + | я меня мне мной [мною] + | ты тебя тебе тобой [тобою] + | он его ему им [него, нему, ним] + | она ее эи ею [нее, нэи, нею] + | оно его ему им [него, нему, ним] + | + | мы нас нам нами + | вы вас вам вами + | они их им ими [них, ним, ними] + | + | себя себе собой [собою] + | + | demonstrative pronouns: этот (this), тот (that) + | + | этот эта это эти + | этого эты это эти + | этого этой этого этих + | этому этой этому этим + | этим этой этим [этою] этими + | этом этой этом этих + | + | тот та то те + | того ту то те + | того той того тех + | тому той тому тем + | тем той тем [тою] теми + | том той том тех + | + | determinative pronouns + | + | (a) весь (all) + | + | весь вся все все + | всего всю все все + | всего всей всего всех + | всему всей всему всем + | всем всей всем [всею] всеми + | всем всей всем всех + | + | (b) сам (himself etc) + | + | сам сама само сами + | самого саму само самих + | самого самой самого самих + | самому самой самому самим + | самим самой самим [самою] самими + | самом самой самом самих + | + | stems of verbs `to be', `to have', `to do' and modal + | + | быть бы буд быв есть суть + | име + | дел + | мог мож мочь + | уме + | хоч хот + | долж + | можн + | нужн + | нельзя diff --git a/sphinx/search/_stopwords/sv.py b/sphinx/search/_stopwords/sv.py new file mode 100644 index 0000000000..c1f10635e0 --- /dev/null +++ b/sphinx/search/_stopwords/sv.py @@ -0,0 +1,118 @@ +from __future__ import annotations + +SWEDISH_STOPWORDS = frozenset({ + 'alla', + 'allt', + 'att', + 'av', + 'blev', + 'bli', + 'blir', + 'blivit', + 'de', + 'dem', + 'den', + 'denna', + 'deras', + 'dess', + 'dessa', + 'det', + 'detta', + 'dig', + 'din', + 'dina', + 'ditt', + 'du', + 'där', + 'då', + 'efter', + 'ej', + 'eller', + 'en', + 'er', + 'era', + 'ert', + 'ett', + 'från', + 'för', + 'ha', + 'hade', + 'han', + 'hans', + 'har', + 'henne', + 'hennes', + 'hon', + 'honom', + 'hur', + 'här', + 'i', + 'icke', + 'ingen', + 'inom', + 'inte', + 'jag', + 'ju', + 'kan', + 'kunde', + 'man', + 'med', + 'mellan', + 'men', + 'mig', + 'min', + 'mina', + 'mitt', + 'mot', + 'mycket', + 'ni', + 'nu', + 'när', + 'någon', + 'något', + 'några', + 'och', + 'om', + 'oss', + 'på', + 'samma', + 'sedan', + 'sig', + 'sin', + 'sina', + 'sitta', + 'själv', + 'skulle', + 'som', + 'så', + 'sådan', + 'sådana', + 'sådant', + 'till', + 'under', + 'upp', + 'ut', + 'utan', + 'vad', + 'var', + 'vara', + 'varför', + 'varit', + 'varje', + 'vars', + 'vart', + 'vem', + 'vi', + 'vid', + 'vilka', + 'vilkas', + 'vilken', + 'vilket', + 'vår', + 'våra', + 'vårt', + 'än', + 'är', + 'åt', + 'över', +}) diff --git a/sphinx/search/_stopwords/sv.txt b/sphinx/search/_stopwords/sv.txt new file mode 100644 index 0000000000..850ae7474d --- /dev/null +++ b/sphinx/search/_stopwords/sv.txt @@ -0,0 +1,115 @@ +| source: https://snowballstem.org/algorithms/swedish/stop.txt +och | and +det | it, this/that +att | to (with infinitive) +i | in, at +en | a +jag | I +hon | she +som | who, that +han | he +på | on +den | it, this/that +med | with +var | where, each +sig | him(self) etc +för | for +så | so (also: seed) +till | to +är | is +men | but +ett | a +om | if; around, about +hade | had +de | they, these/those +av | of +icke | not, no +mig | me +du | you +henne | her +då | then, when +sin | his +nu | now +har | have +inte | inte någon = no one +hans | his +honom | him +skulle | 'sake' +hennes | her +där | there +min | my +man | one (pronoun) +ej | nor +vid | at, by, on (also: vast) +kunde | could +något | some etc +från | from, off +ut | out +när | when +efter | after, behind +upp | up +vi | we +dem | them +vara | be +vad | what +över | over +än | than +dig | you +kan | can +sina | his +här | here +ha | have +mot | towards +alla | all +under | under (also: wonder) +någon | some etc +eller | or (else) +allt | all +mycket | much +sedan | since +ju | why +denna | this/that +själv | myself, yourself etc +detta | this/that +åt | to +utan | without +varit | was +hur | how +ingen | no +mitt | my +ni | you +bli | to be, become +blev | from bli +oss | us +din | thy +dessa | these/those +några | some etc +deras | their +blir | from bli +mina | my +samma | (the) same +vilken | who, that +er | you, your +sådan | such a +vår | our +blivit | from bli +dess | its +inom | within +mellan | between +sådant | such a +varför | why +varje | each +vilka | who, that +ditt | thy +vem | who +vilket | who, that +sitta | his +sådana | such a +vart | each +dina | thy +vars | whose +vårt | our +våra | our +ert | your +era | your +vilkas | whose diff --git a/sphinx/search/da.py b/sphinx/search/da.py index 8be1c6a215..3eb997af1c 100644 --- a/sphinx/search/da.py +++ b/sphinx/search/da.py @@ -4,112 +4,15 @@ from __future__ import annotations import snowballstemmer -from sphinx.search import SearchLanguage, parse_stop_word - -danish_stopwords = parse_stop_word(""" -| source: https://snowballstem.org/algorithms/danish/stop.txt -og | and -i | in -jeg | I -det | that (dem. pronoun)/it (pers. pronoun) -at | that (in front of a sentence)/to (with infinitive) -en | a/an -den | it (pers. pronoun)/that (dem. pronoun) -til | to/at/for/until/against/by/of/into, more -er | present tense of "to be" -som | who, as -på | on/upon/in/on/at/to/after/of/with/for, on -de | they -med | with/by/in, along -han | he -af | of/by/from/off/for/in/with/on, off -for | at/for/to/from/by/of/ago, in front/before, because -ikke | not -der | who/which, there/those -var | past tense of "to be" -mig | me/myself -sig | oneself/himself/herself/itself/themselves -men | but -et | a/an/one, one (number), someone/somebody/one -har | present tense of "to have" -om | round/about/for/in/a, about/around/down, if -vi | we -min | my -havde | past tense of "to have" -ham | him -hun | she -nu | now -over | over/above/across/by/beyond/past/on/about, over/past -da | then, when/as/since -fra | from/off/since, off, since -du | you -ud | out -sin | his/her/its/one's -dem | them -os | us/ourselves -op | up -man | you/one -hans | his -hvor | where -eller | or -hvad | what -skal | must/shall etc. -selv | myself/yourself/herself/ourselves etc., even -her | here -alle | all/everyone/everybody etc. -vil | will (verb) -blev | past tense of "to stay/to remain/to get/to become" -kunne | could -ind | in -når | when -være | present tense of "to be" -dog | however/yet/after all -noget | something -ville | would -jo | you know/you see (adv), yes -deres | their/theirs -efter | after/behind/according to/for/by/from, later/afterwards -ned | down -skulle | should -denne | this -end | than -dette | this -mit | my/mine -også | also -under | under/beneath/below/during, below/underneath -have | have -dig | you -anden | other -hende | her -mine | my -alt | everything -meget | much/very, plenty of -sit | his, her, its, one's -sine | his, her, its, one's -vor | our -mod | against -disse | these -hvis | if -din | your/yours -nogle | some -hos | by/at -blive | be/become -mange | many -ad | by/through -bliver | present tense of "to be/to become" -hendes | her/hers -været | be -thi | for (conj) -jer | you -sådan | such, like this/like that -""") +from sphinx.search import SearchLanguage +from sphinx.search._stopwords.da import DANISH_STOPWORDS class SearchDanish(SearchLanguage): lang = 'da' language_name = 'Danish' js_stemmer_rawcode = 'danish-stemmer.js' - stopwords = danish_stopwords + stopwords = DANISH_STOPWORDS def __init__(self, options: dict[str, str]) -> None: super().__init__(options) diff --git a/sphinx/search/de.py b/sphinx/search/de.py index ac5ac7ee13..6875b9c753 100644 --- a/sphinx/search/de.py +++ b/sphinx/search/de.py @@ -4,295 +4,15 @@ from __future__ import annotations import snowballstemmer -from sphinx.search import SearchLanguage, parse_stop_word - -german_stopwords = parse_stop_word(""" -|source: https://snowballstem.org/algorithms/german/stop.txt -aber | but - -alle | all -allem -allen -aller -alles - -als | than, as -also | so -am | an + dem -an | at - -ander | other -andere -anderem -anderen -anderer -anderes -anderm -andern -anderr -anders - -auch | also -auf | on -aus | out of -bei | by -bin | am -bis | until -bist | art -da | there -damit | with it -dann | then - -der | the -den -des -dem -die -das - -daß | that - -derselbe | the same -derselben -denselben -desselben -demselben -dieselbe -dieselben -dasselbe - -dazu | to that - -dein | thy -deine -deinem -deinen -deiner -deines - -denn | because - -derer | of those -dessen | of him - -dich | thee -dir | to thee -du | thou - -dies | this -diese -diesem -diesen -dieser -dieses - - -doch | (several meanings) -dort | (over) there - - -durch | through - -ein | a -eine -einem -einen -einer -eines - -einig | some -einige -einigem -einigen -einiger -einiges - -einmal | once - -er | he -ihn | him -ihm | to him - -es | it -etwas | something - -euer | your -eure -eurem -euren -eurer -eures - -für | for -gegen | towards -gewesen | p.p. of sein -hab | have -habe | have -haben | have -hat | has -hatte | had -hatten | had -hier | here -hin | there -hinter | behind - -ich | I -mich | me -mir | to me - - -ihr | you, to her -ihre -ihrem -ihren -ihrer -ihres -euch | to you - -im | in + dem -in | in -indem | while -ins | in + das -ist | is - -jede | each, every -jedem -jeden -jeder -jedes - -jene | that -jenem -jenen -jener -jenes - -jetzt | now -kann | can - -kein | no -keine -keinem -keinen -keiner -keines - -können | can -könnte | could -machen | do -man | one - -manche | some, many a -manchem -manchen -mancher -manches - -mein | my -meine -meinem -meinen -meiner -meines - -mit | with -muss | must -musste | had to -nach | to(wards) -nicht | not -nichts | nothing -noch | still, yet -nun | now -nur | only -ob | whether -oder | or -ohne | without -sehr | very - -sein | his -seine -seinem -seinen -seiner -seines - -selbst | self -sich | herself - -sie | they, she -ihnen | to them - -sind | are -so | so - -solche | such -solchem -solchen -solcher -solches - -soll | shall -sollte | should -sondern | but -sonst | else -über | over -um | about, around -und | and - -uns | us -unse -unsem -unsen -unser -unses - -unter | under -viel | much -vom | von + dem -von | from -vor | before -während | while -war | was -waren | were -warst | wast -was | what -weg | away, off -weil | because -weiter | further - -welche | which -welchem -welchen -welcher -welches - -wenn | when -werde | will -werden | will -wie | how -wieder | again -will | want -wir | we -wird | will -wirst | willst -wo | where -wollen | want -wollte | wanted -würde | would -würden | would -zu | to -zum | zu + dem -zur | zu + der -zwar | indeed -zwischen | between -""") +from sphinx.search import SearchLanguage +from sphinx.search._stopwords.de import GERMAN_STOPWORDS class SearchGerman(SearchLanguage): lang = 'de' language_name = 'German' js_stemmer_rawcode = 'german-stemmer.js' - stopwords = german_stopwords + stopwords = GERMAN_STOPWORDS def __init__(self, options: dict[str, str]) -> None: super().__init__(options) diff --git a/sphinx/search/en.py b/sphinx/search/en.py index 51494a04a4..30324c8832 100644 --- a/sphinx/search/en.py +++ b/sphinx/search/en.py @@ -5,18 +5,7 @@ from __future__ import annotations import snowballstemmer from sphinx.search import SearchLanguage - -english_stopwords = { - 'a', 'and', 'are', 'as', 'at', - 'be', 'but', 'by', - 'for', - 'if', 'in', 'into', 'is', 'it', - 'near', 'no', 'not', - 'of', 'on', 'or', - 'such', - 'that', 'the', 'their', 'then', 'there', 'these', 'they', 'this', 'to', - 'was', 'will', 'with', -} # fmt: skip +from sphinx.search._stopwords.en import ENGLISH_STOPWORDS js_porter_stemmer = """ /** @@ -209,7 +198,7 @@ class SearchEnglish(SearchLanguage): lang = 'en' language_name = 'English' js_stemmer_code = js_porter_stemmer - stopwords = english_stopwords + stopwords = ENGLISH_STOPWORDS def __init__(self, options: dict[str, str]) -> None: super().__init__(options) diff --git a/sphinx/search/es.py b/sphinx/search/es.py index 3cc41f600a..d11937ad0c 100644 --- a/sphinx/search/es.py +++ b/sphinx/search/es.py @@ -4,355 +4,15 @@ from __future__ import annotations import snowballstemmer -from sphinx.search import SearchLanguage, parse_stop_word - -spanish_stopwords = parse_stop_word(""" -|source: https://snowballstem.org/algorithms/spanish/stop.txt -de | from, of -la | the, her -que | who, that -el | the -en | in -y | and -a | to -los | the, them -del | de + el -se | himself, from him etc -las | the, them -por | for, by, etc -un | a -para | for -con | with -no | no -una | a -su | his, her -al | a + el - | es from SER -lo | him -como | how -más | more -pero | pero -sus | su plural -le | to him, her -ya | already -o | or - | fue from SER -este | this - | ha from HABER -sí | himself etc -porque | because -esta | this - | son from SER -entre | between - | está from ESTAR -cuando | when -muy | very -sin | without -sobre | on - | ser from SER - | tiene from TENER -también | also -me | me -hasta | until -hay | there is/are -donde | where - | han from HABER -quien | whom, that - | están from ESTAR - | estado from ESTAR -desde | from -todo | all -nos | us -durante | during - | estados from ESTAR -todos | all -uno | a -les | to them -ni | nor -contra | against -otros | other - | fueron from SER -ese | that -eso | that - | había from HABER -ante | before -ellos | they -e | and (variant of y) -esto | this -mí | me -antes | before -algunos | some -qué | what? -unos | a -yo | I -otro | other -otras | other -otra | other -él | he -tanto | so much, many -esa | that -estos | these -mucho | much, many -quienes | who -nada | nothing -muchos | many -cual | who - | sea from SER -poco | few -ella | she -estar | to be - | haber from HABER -estas | these - | estaba from ESTAR - | estamos from ESTAR -algunas | some -algo | something -nosotros | we - - | other forms - -mi | me -mis | mi plural -tú | thou -te | thee -ti | thee -tu | thy -tus | tu plural -ellas | they -nosotras | we -vosotros | you -vosotras | you -os | you -mío | mine -mía | -míos | -mías | -tuyo | thine -tuya | -tuyos | -tuyas | -suyo | his, hers, theirs -suya | -suyos | -suyas | -nuestro | ours -nuestra | -nuestros | -nuestras | -vuestro | yours -vuestra | -vuestros | -vuestras | -esos | those -esas | those - - | forms of estar, to be (not including the infinitive): -estoy -estás -está -estamos -estáis -están -esté -estés -estemos -estéis -estén -estaré -estarás -estará -estaremos -estaréis -estarán -estaría -estarías -estaríamos -estaríais -estarían -estaba -estabas -estábamos -estabais -estaban -estuve -estuviste -estuvo -estuvimos -estuvisteis -estuvieron -estuviera -estuvieras -estuviéramos -estuvierais -estuvieran -estuviese -estuvieses -estuviésemos -estuvieseis -estuviesen -estando -estado -estada -estados -estadas -estad - - | forms of haber, to have (not including the infinitive): -he -has -ha -hemos -habéis -han -haya -hayas -hayamos -hayáis -hayan -habré -habrás -habrá -habremos -habréis -habrán -habría -habrías -habríamos -habríais -habrían -había -habías -habíamos -habíais -habían -hube -hubiste -hubo -hubimos -hubisteis -hubieron -hubiera -hubieras -hubiéramos -hubierais -hubieran -hubiese -hubieses -hubiésemos -hubieseis -hubiesen -habiendo -habido -habida -habidos -habidas - - | forms of ser, to be (not including the infinitive): -soy -eres -es -somos -sois -son -sea -seas -seamos -seáis -sean -seré -serás -será -seremos -seréis -serán -sería -serías -seríamos -seríais -serían -era -eras -éramos -erais -eran -fui -fuiste -fue -fuimos -fuisteis -fueron -fuera -fueras -fuéramos -fuerais -fueran -fuese -fueses -fuésemos -fueseis -fuesen -siendo -sido - | sed also means 'thirst' - - | forms of tener, to have (not including the infinitive): -tengo -tienes -tiene -tenemos -tenéis -tienen -tenga -tengas -tengamos -tengáis -tengan -tendré -tendrás -tendrá -tendremos -tendréis -tendrán -tendría -tendrías -tendríamos -tendríais -tendrían -tenía -tenías -teníamos -teníais -tenían -tuve -tuviste -tuvo -tuvimos -tuvisteis -tuvieron -tuviera -tuvieras -tuviéramos -tuvierais -tuvieran -tuviese -tuvieses -tuviésemos -tuvieseis -tuviesen -teniendo -tenido -tenida -tenidos -tenidas -tened -""") +from sphinx.search import SearchLanguage +from sphinx.search._stopwords.es import SPANISH_STOPWORDS class SearchSpanish(SearchLanguage): lang = 'es' language_name = 'Spanish' js_stemmer_rawcode = 'spanish-stemmer.js' - stopwords = spanish_stopwords + stopwords = SPANISH_STOPWORDS def __init__(self, options: dict[str, str]) -> None: super().__init__(options) diff --git a/sphinx/search/fi.py b/sphinx/search/fi.py index c8b048d4fc..cd044b71a8 100644 --- a/sphinx/search/fi.py +++ b/sphinx/search/fi.py @@ -4,105 +4,15 @@ from __future__ import annotations import snowballstemmer -from sphinx.search import SearchLanguage, parse_stop_word - -finnish_stopwords = parse_stop_word(""" -| source: https://snowballstem.org/algorithms/finnish/stop.txt -| forms of BE - -olla -olen -olet -on -olemme -olette -ovat -ole | negative form - -oli -olisi -olisit -olisin -olisimme -olisitte -olisivat -olit -olin -olimme -olitte -olivat -ollut -olleet - -en | negation -et -ei -emme -ette -eivät - -|Nom Gen Acc Part Iness Elat Illat Adess Ablat Allat Ess Trans -minä minun minut minua minussa minusta minuun minulla minulta minulle | I -sinä sinun sinut sinua sinussa sinusta sinuun sinulla sinulta sinulle | you -hän hänen hänet häntä hänessä hänestä häneen hänellä häneltä hänelle | he she -me meidän meidät meitä meissä meistä meihin meillä meiltä meille | we -te teidän teidät teitä teissä teistä teihin teillä teiltä teille | you -he heidän heidät heitä heissä heistä heihin heillä heiltä heille | they - -tämä tämän tätä tässä tästä tähän tällä tältä tälle tänä täksi | this -tuo tuon tuota tuossa tuosta tuohon tuolla tuolta tuolle tuona tuoksi | that -se sen sitä siinä siitä siihen sillä siltä sille sinä siksi | it -nämä näiden näitä näissä näistä näihin näillä näiltä näille näinä näiksi | these -nuo noiden noita noissa noista noihin noilla noilta noille noina noiksi | those -ne niiden niitä niissä niistä niihin niillä niiltä niille niinä niiksi | they - -kuka kenen kenet ketä kenessä kenestä keneen kenellä keneltä kenelle kenenä keneksi| who -ketkä keiden ketkä keitä keissä keistä keihin keillä keiltä keille keinä keiksi | (pl) -mikä minkä minkä mitä missä mistä mihin millä miltä mille minä miksi | which what -mitkä | (pl) - -joka jonka jota jossa josta johon jolla jolta jolle jona joksi | who which -jotka joiden joita joissa joista joihin joilla joilta joille joina joiksi | (pl) - -| conjunctions - -että | that -ja | and -jos | if -koska | because -kuin | than -mutta | but -niin | so -sekä | and -sillä | for -tai | or -vaan | but -vai | or -vaikka | although - - -| prepositions - -kanssa | with -mukaan | according to -noin | about -poikki | across -yli | over, across - -| other - -kun | when -niin | so -nyt | now -itse | self -""") # NoQA: E501 +from sphinx.search import SearchLanguage +from sphinx.search._stopwords.fi import FINNISH_STOPWORDS class SearchFinnish(SearchLanguage): lang = 'fi' language_name = 'Finnish' js_stemmer_rawcode = 'finnish-stemmer.js' - stopwords = finnish_stopwords + stopwords = FINNISH_STOPWORDS def __init__(self, options: dict[str, str]) -> None: super().__init__(options) diff --git a/sphinx/search/fr.py b/sphinx/search/fr.py index bbdc56032f..11a2c70f5d 100644 --- a/sphinx/search/fr.py +++ b/sphinx/search/fr.py @@ -4,191 +4,15 @@ from __future__ import annotations import snowballstemmer -from sphinx.search import SearchLanguage, parse_stop_word - -french_stopwords = parse_stop_word(""" -| source: https://snowballstem.org/algorithms/french/stop.txt -au | a + le -aux | a + les -avec | with -ce | this -ces | these -dans | with -de | of -des | de + les -du | de + le -elle | she -en | `of them' etc -et | and -eux | them -il | he -je | I -la | the -le | the -leur | their -lui | him -ma | my (fem) -mais | but -me | me -même | same; as in moi-même (myself) etc -mes | me (pl) -moi | me -mon | my (masc) -ne | not -nos | our (pl) -notre | our -nous | we -on | one -ou | where -par | by -pas | not -pour | for -qu | que before vowel -que | that -qui | who -sa | his, her (fem) -se | oneself -ses | his (pl) -son | his, her (masc) -sur | on -ta | thy (fem) -te | thee -tes | thy (pl) -toi | thee -ton | thy (masc) -tu | thou -un | a -une | a -vos | your (pl) -votre | your -vous | you - - | single letter forms - -c | c' -d | d' -j | j' -l | l' -à | to, at -m | m' -n | n' -s | s' -t | t' -y | there - - | forms of être (not including the infinitive): -été -étée -étées -étés -étant -suis -es -est -sommes -êtes -sont -serai -seras -sera -serons -serez -seront -serais -serait -serions -seriez -seraient -étais -était -étions -étiez -étaient -fus -fut -fûmes -fûtes -furent -sois -soit -soyons -soyez -soient -fusse -fusses -fût -fussions -fussiez -fussent - - | forms of avoir (not including the infinitive): -ayant -eu -eue -eues -eus -ai -as -avons -avez -ont -aurai -auras -aura -aurons -aurez -auront -aurais -aurait -aurions -auriez -auraient -avais -avait -avions -aviez -avaient -eut -eûmes -eûtes -eurent -aie -aies -ait -ayons -ayez -aient -eusse -eusses -eût -eussions -eussiez -eussent - - | Later additions (from Jean-Christophe Deschamps) -ceci | this -cela | that (added 11 Apr 2012. Omission reported by Adrien Grand) -celà | that (incorrect, though common) -cet | this -cette | this -ici | here -ils | they -les | the (pl) -leurs | their (pl) -quel | which -quels | which -quelle | which -quelles | which -sans | without -soi | oneself -""") +from sphinx.search import SearchLanguage +from sphinx.search._stopwords.fr import FRENCH_STOPWORDS class SearchFrench(SearchLanguage): lang = 'fr' language_name = 'French' js_stemmer_rawcode = 'french-stemmer.js' - stopwords = french_stopwords + stopwords = FRENCH_STOPWORDS def __init__(self, options: dict[str, str]) -> None: super().__init__(options) diff --git a/sphinx/search/hu.py b/sphinx/search/hu.py index 4e30ca407e..e86159cb60 100644 --- a/sphinx/search/hu.py +++ b/sphinx/search/hu.py @@ -4,218 +4,15 @@ from __future__ import annotations import snowballstemmer -from sphinx.search import SearchLanguage, parse_stop_word - -hungarian_stopwords = parse_stop_word(""" -| source: https://snowballstem.org/algorithms/hungarian/stop.txt -| prepared by Anna Tordai -a -ahogy -ahol -aki -akik -akkor -alatt -által -általában -amely -amelyek -amelyekben -amelyeket -amelyet -amelynek -ami -amit -amolyan -amíg -amikor -át -abban -ahhoz -annak -arra -arról -az -azok -azon -azt -azzal -azért -aztán -azután -azonban -bár -be -belül -benne -cikk -cikkek -cikkeket -csak -de -e -eddig -egész -egy -egyes -egyetlen -egyéb -egyik -egyre -ekkor -el -elég -ellen -elő -először -előtt -első -én -éppen -ebben -ehhez -emilyen -ennek -erre -ez -ezt -ezek -ezen -ezzel -ezért -és -fel -felé -hanem -hiszen -hogy -hogyan -igen -így -illetve -ill. -ill -ilyen -ilyenkor -ison -ismét -itt -jó -jól -jobban -kell -kellett -keresztül -keressünk -ki -kívül -között -közül -legalább -lehet -lehetett -legyen -lenne -lenni -lesz -lett -maga -magát -majd -majd -már -más -másik -meg -még -mellett -mert -mely -melyek -mi -mit -míg -miért -milyen -mikor -minden -mindent -mindenki -mindig -mint -mintha -mivel -most -nagy -nagyobb -nagyon -ne -néha -nekem -neki -nem -néhány -nélkül -nincs -olyan -ott -össze -ő -ők -őket -pedig -persze -rá -s -saját -sem -semmi -sok -sokat -sokkal -számára -szemben -szerint -szinte -talán -tehát -teljes -tovább -továbbá -több -úgy -ugyanis -új -újabb -újra -után -utána -utolsó -vagy -vagyis -valaki -valami -valamint -való -vagyok -van -vannak -volt -voltam -voltak -voltunk -vissza -vele -viszont -volna -""") +from sphinx.search import SearchLanguage +from sphinx.search._stopwords.hu import HUNGARIAN_STOPWORDS class SearchHungarian(SearchLanguage): lang = 'hu' language_name = 'Hungarian' js_stemmer_rawcode = 'hungarian-stemmer.js' - stopwords = hungarian_stopwords + stopwords = HUNGARIAN_STOPWORDS def __init__(self, options: dict[str, str]) -> None: super().__init__(options) diff --git a/sphinx/search/it.py b/sphinx/search/it.py index b42e9699b3..a7052c9ae8 100644 --- a/sphinx/search/it.py +++ b/sphinx/search/it.py @@ -4,308 +4,15 @@ from __future__ import annotations import snowballstemmer -from sphinx.search import SearchLanguage, parse_stop_word - -italian_stopwords = parse_stop_word(""" -| source: https://snowballstem.org/algorithms/italian/stop.txt -ad | a (to) before vowel -al | a + il -allo | a + lo -ai | a + i -agli | a + gli -all | a + l' -agl | a + gl' -alla | a + la -alle | a + le -con | with -col | con + il -coi | con + i (forms collo, cogli etc are now very rare) -da | from -dal | da + il -dallo | da + lo -dai | da + i -dagli | da + gli -dall | da + l' -dagl | da + gll' -dalla | da + la -dalle | da + le -di | of -del | di + il -dello | di + lo -dei | di + i -degli | di + gli -dell | di + l' -degl | di + gl' -della | di + la -delle | di + le -in | in -nel | in + el -nello | in + lo -nei | in + i -negli | in + gli -nell | in + l' -negl | in + gl' -nella | in + la -nelle | in + le -su | on -sul | su + il -sullo | su + lo -sui | su + i -sugli | su + gli -sull | su + l' -sugl | su + gl' -sulla | su + la -sulle | su + le -per | through, by -tra | among -contro | against -io | I -tu | thou -lui | he -lei | she -noi | we -voi | you -loro | they -mio | my -mia | -miei | -mie | -tuo | -tua | -tuoi | thy -tue | -suo | -sua | -suoi | his, her -sue | -nostro | our -nostra | -nostri | -nostre | -vostro | your -vostra | -vostri | -vostre | -mi | me -ti | thee -ci | us, there -vi | you, there -lo | him, the -la | her, the -li | them -le | them, the -gli | to him, the -ne | from there etc -il | the -un | a -uno | a -una | a -ma | but -ed | and -se | if -perché | why, because -anche | also -come | how -dov | where (as dov') -dove | where -che | who, that -chi | who -cui | whom -non | not -più | more -quale | who, that -quanto | how much -quanti | -quanta | -quante | -quello | that -quelli | -quella | -quelle | -questo | this -questi | -questa | -queste | -si | yes -tutto | all -tutti | all - - | single letter forms: - -a | at -c | as c' for ce or ci -e | and -i | the -l | as l' -o | or - - | forms of avere, to have (not including the infinitive): - -ho -hai -ha -abbiamo -avete -hanno -abbia -abbiate -abbiano -avrò -avrai -avrà -avremo -avrete -avranno -avrei -avresti -avrebbe -avremmo -avreste -avrebbero -avevo -avevi -aveva -avevamo -avevate -avevano -ebbi -avesti -ebbe -avemmo -aveste -ebbero -avessi -avesse -avessimo -avessero -avendo -avuto -avuta -avuti -avute - - | forms of essere, to be (not including the infinitive): -sono -sei -è -siamo -siete -sia -siate -siano -sarò -sarai -sarà -saremo -sarete -saranno -sarei -saresti -sarebbe -saremmo -sareste -sarebbero -ero -eri -era -eravamo -eravate -erano -fui -fosti -fu -fummo -foste -furono -fossi -fosse -fossimo -fossero -essendo - - | forms of fare, to do (not including the infinitive, fa, fat-): -faccio -fai -facciamo -fanno -faccia -facciate -facciano -farò -farai -farà -faremo -farete -faranno -farei -faresti -farebbe -faremmo -fareste -farebbero -facevo -facevi -faceva -facevamo -facevate -facevano -feci -facesti -fece -facemmo -faceste -fecero -facessi -facesse -facessimo -facessero -facendo - - | forms of stare, to be (not including the infinitive): -sto -stai -sta -stiamo -stanno -stia -stiate -stiano -starò -starai -starà -staremo -starete -staranno -starei -staresti -starebbe -staremmo -stareste -starebbero -stavo -stavi -stava -stavamo -stavate -stavano -stetti -stesti -stette -stemmo -steste -stettero -stessi -stesse -stessimo -stessero -""") +from sphinx.search import SearchLanguage +from sphinx.search._stopwords.it import ITALIAN_STOPWORDS class SearchItalian(SearchLanguage): lang = 'it' language_name = 'Italian' js_stemmer_rawcode = 'italian-stemmer.js' - stopwords = italian_stopwords + stopwords = ITALIAN_STOPWORDS def __init__(self, options: dict[str, str]) -> None: super().__init__(options) diff --git a/sphinx/search/nl.py b/sphinx/search/nl.py index 39c14c7666..0692920efc 100644 --- a/sphinx/search/nl.py +++ b/sphinx/search/nl.py @@ -4,119 +4,15 @@ from __future__ import annotations import snowballstemmer -from sphinx.search import SearchLanguage, parse_stop_word - -dutch_stopwords = parse_stop_word(""" -| source: https://snowballstem.org/algorithms/dutch/stop.txt -de | the -en | and -van | of, from -ik | I, the ego -te | (1) chez, at etc, (2) to, (3) too -dat | that, which -die | that, those, who, which -in | in, inside -een | a, an, one -hij | he -het | the, it -niet | not, nothing, naught -zijn | (1) to be, being, (2) his, one's, its -is | is -was | (1) was, past tense of all persons sing. of 'zijn' (to be) (2) wax, (3) the washing, (4) rise of river -op | on, upon, at, in, up, used up -aan | on, upon, to (as dative) -met | with, by -als | like, such as, when -voor | (1) before, in front of, (2) furrow -had | had, past tense all persons sing. of 'hebben' (have) -er | there -maar | but, only -om | round, about, for etc -hem | him -dan | then -zou | should/would, past tense all persons sing. of 'zullen' -of | or, whether, if -wat | what, something, anything -mijn | possessive and noun 'mine' -men | people, 'one' -dit | this -zo | so, thus, in this way -door | through by -over | over, across -ze | she, her, they, them -zich | oneself -bij | (1) a bee, (2) by, near, at -ook | also, too -tot | till, until -je | you -mij | me -uit | out of, from -der | Old Dutch form of 'van der' still found in surnames -daar | (1) there, (2) because -haar | (1) her, their, them, (2) hair -naar | (1) unpleasant, unwell etc, (2) towards, (3) as -heb | present first person sing. of 'to have' -hoe | how, why -heeft | present third person sing. of 'to have' -hebben | 'to have' and various parts thereof -deze | this -u | you -want | (1) for, (2) mitten, (3) rigging -nog | yet, still -zal | 'shall', first and third person sing. of verb 'zullen' (will) -me | me -zij | she, they -nu | now -ge | 'thou', still used in Belgium and south Netherlands -geen | none -omdat | because -iets | something, somewhat -worden | to become, grow, get -toch | yet, still -al | all, every, each -waren | (1) 'were' (2) to wander, (3) wares, (3) -veel | much, many -meer | (1) more, (2) lake -doen | to do, to make -toen | then, when -moet | noun 'spot/mote' and present form of 'to must' -ben | (1) am, (2) 'are' in interrogative second person singular of 'to be' -zonder | without -kan | noun 'can' and present form of 'to be able' -hun | their, them -dus | so, consequently -alles | all, everything, anything -onder | under, beneath -ja | yes, of course -eens | once, one day -hier | here -wie | who -werd | imperfect third person sing. of 'become' -altijd | always -doch | yet, but etc -wordt | present third person sing. of 'become' -wezen | (1) to be, (2) 'been' as in 'been fishing', (3) orphans -kunnen | to be able -ons | us/our -zelf | self -tegen | against, towards, at -na | after, near -reeds | already -wil | (1) present tense of 'want', (2) 'will', noun, (3) fender -kon | could; past tense of 'to be able' -niets | nothing -uw | your -iemand | somebody -geweest | been; past participle of 'be' -andere | other -""") # NoQA: E501 +from sphinx.search import SearchLanguage +from sphinx.search._stopwords.nl import DUTCH_STOPWORDS class SearchDutch(SearchLanguage): lang = 'nl' language_name = 'Dutch' js_stemmer_rawcode = 'dutch-stemmer.js' - stopwords = dutch_stopwords + stopwords = DUTCH_STOPWORDS def __init__(self, options: dict[str, str]) -> None: super().__init__(options) diff --git a/sphinx/search/no.py b/sphinx/search/no.py index 7a21e6728c..a2bb88ee9a 100644 --- a/sphinx/search/no.py +++ b/sphinx/search/no.py @@ -4,194 +4,15 @@ from __future__ import annotations import snowballstemmer -from sphinx.search import SearchLanguage, parse_stop_word - -norwegian_stopwords = parse_stop_word(""" -| source: https://snowballstem.org/algorithms/norwegian/stop.txt -og | and -i | in -jeg | I -det | it/this/that -at | to (w. inf.) -en | a/an -et | a/an -den | it/this/that -til | to -er | is/am/are -som | who/that -på | on -de | they / you(formal) -med | with -han | he -av | of -ikke | not -ikkje | not * -der | there -så | so -var | was/were -meg | me -seg | you -men | but -ett | one -har | have -om | about -vi | we -min | my -mitt | my -ha | have -hadde | had -hun | she -nå | now -over | over -da | when/as -ved | by/know -fra | from -du | you -ut | out -sin | your -dem | them -oss | us -opp | up -man | you/one -kan | can -hans | his -hvor | where -eller | or -hva | what -skal | shall/must -selv | self (reflective) -sjøl | self (reflective) -her | here -alle | all -vil | will -bli | become -ble | became -blei | became * -blitt | have become -kunne | could -inn | in -når | when -være | be -kom | come -noen | some -noe | some -ville | would -dere | you -som | who/which/that -deres | their/theirs -kun | only/just -ja | yes -etter | after -ned | down -skulle | should -denne | this -for | for/because -deg | you -si | hers/his -sine | hers/his -sitt | hers/his -mot | against -å | to -meget | much -hvorfor | why -dette | this -disse | these/those -uten | without -hvordan | how -ingen | none -din | your -ditt | your -blir | become -samme | same -hvilken | which -hvilke | which (plural) -sånn | such a -inni | inside/within -mellom | between -vår | our -hver | each -hvem | who -vors | us/ours -hvis | whose -både | both -bare | only/just -enn | than -fordi | as/because -før | before -mange | many -også | also -slik | just -vært | been -være | to be -båe | both * -begge | both -siden | since -dykk | your * -dykkar | yours * -dei | they * -deira | them * -deires | theirs * -deim | them * -di | your (fem.) * -då | as/when * -eg | I * -ein | a/an * -eit | a/an * -eitt | a/an * -elles | or * -honom | he * -hjå | at * -ho | she * -hoe | she * -henne | her -hennar | her/hers -hennes | hers -hoss | how * -hossen | how * -ikkje | not * -ingi | noone * -inkje | noone * -korleis | how * -korso | how * -kva | what/which * -kvar | where * -kvarhelst | where * -kven | who/whom * -kvi | why * -kvifor | why * -me | we * -medan | while * -mi | my * -mine | my * -mykje | much * -no | now * -nokon | some (masc./neut.) * -noka | some (fem.) * -nokor | some * -noko | some * -nokre | some * -si | his/hers * -sia | since * -sidan | since * -so | so * -somt | some * -somme | some * -um | about* -upp | up * -vere | be * -vore | was * -verte | become * -vort | become * -varte | became * -vart | became * -""") +from sphinx.search import SearchLanguage +from sphinx.search._stopwords.no import NORWEGIAN_STOPWORDS class SearchNorwegian(SearchLanguage): lang = 'no' language_name = 'Norwegian' js_stemmer_rawcode = 'norwegian-stemmer.js' - stopwords = norwegian_stopwords + stopwords = NORWEGIAN_STOPWORDS def __init__(self, options: dict[str, str]) -> None: super().__init__(options) diff --git a/sphinx/search/pt.py b/sphinx/search/pt.py index 82f1858f0d..9c5dfa0577 100644 --- a/sphinx/search/pt.py +++ b/sphinx/search/pt.py @@ -4,253 +4,15 @@ from __future__ import annotations import snowballstemmer -from sphinx.search import SearchLanguage, parse_stop_word - -portuguese_stopwords = parse_stop_word(""" -| source: https://snowballstem.org/algorithms/portuguese/stop.txt -de | of, from -a | the; to, at; her -o | the; him -que | who, that -e | and -do | de + o -da | de + a -em | in -um | a -para | for - | é from SER -com | with -não | not, no -uma | a -os | the; them -no | em + o -se | himself etc -na | em + a -por | for -mais | more -as | the; them -dos | de + os -como | as, like -mas | but - | foi from SER -ao | a + o -ele | he -das | de + as - | tem from TER -à | a + a -seu | his -sua | her -ou | or - | ser from SER -quando | when -muito | much - | há from HAV -nos | em + os; us -já | already, now - | está from EST -eu | I -também | also -só | only, just -pelo | per + o -pela | per + a -até | up to -isso | that -ela | he -entre | between - | era from SER -depois | after -sem | without -mesmo | same -aos | a + os - | ter from TER -seus | his -quem | whom -nas | em + as -me | me -esse | that -eles | they - | estão from EST -você | you - | tinha from TER - | foram from SER -essa | that -num | em + um -nem | nor -suas | her -meu | my -às | a + as -minha | my - | têm from TER -numa | em + uma -pelos | per + os -elas | they - | havia from HAV - | seja from SER -qual | which - | será from SER -nós | we - | tenho from TER -lhe | to him, her -deles | of them -essas | those -esses | those -pelas | per + as -este | this - | fosse from SER -dele | of him - - | other words. There are many contractions such as naquele = em+aquele, - | mo = me+o, but they are rare. - | Indefinite article plural forms are also rare. - -tu | thou -te | thee -vocês | you (plural) -vos | you -lhes | to them -meus | my -minhas -teu | thy -tua -teus -tuas -nosso | our -nossa -nossos -nossas - -dela | of her -delas | of them - -esta | this -estes | these -estas | these -aquele | that -aquela | that -aqueles | those -aquelas | those -isto | this -aquilo | that - - | forms of estar, to be (not including the infinitive): -estou -está -estamos -estão -estive -esteve -estivemos -estiveram -estava -estávamos -estavam -estivera -estivéramos -esteja -estejamos -estejam -estivesse -estivéssemos -estivessem -estiver -estivermos -estiverem - - | forms of haver, to have (not including the infinitive): -hei -há -havemos -hão -houve -houvemos -houveram -houvera -houvéramos -haja -hajamos -hajam -houvesse -houvéssemos -houvessem -houver -houvermos -houverem -houverei -houverá -houveremos -houverão -houveria -houveríamos -houveriam - - | forms of ser, to be (not including the infinitive): -sou -somos -são -era -éramos -eram -fui -foi -fomos -foram -fora -fôramos -seja -sejamos -sejam -fosse -fôssemos -fossem -for -formos -forem -serei -será -seremos -serão -seria -seríamos -seriam - - | forms of ter, to have (not including the infinitive): -tenho -tem -temos -tém -tinha -tínhamos -tinham -tive -teve -tivemos -tiveram -tivera -tivéramos -tenha -tenhamos -tenham -tivesse -tivéssemos -tivessem -tiver -tivermos -tiverem -terei -terá -teremos -terão -teria -teríamos -teriam -""") +from sphinx.search import SearchLanguage +from sphinx.search._stopwords.pt import PORTUGUESE_STOPWORDS class SearchPortuguese(SearchLanguage): lang = 'pt' language_name = 'Portuguese' js_stemmer_rawcode = 'portuguese-stemmer.js' - stopwords = portuguese_stopwords + stopwords = PORTUGUESE_STOPWORDS def __init__(self, options: dict[str, str]) -> None: super().__init__(options) diff --git a/sphinx/search/ro.py b/sphinx/search/ro.py index e08ce5a09e..6aebdc1324 100644 --- a/sphinx/search/ro.py +++ b/sphinx/search/ro.py @@ -11,7 +11,7 @@ class SearchRomanian(SearchLanguage): lang = 'ro' language_name = 'Romanian' js_stemmer_rawcode = 'romanian-stemmer.js' - stopwords: set[str] = set() + stopwords = frozenset() def __init__(self, options: dict[str, str]) -> None: super().__init__(options) diff --git a/sphinx/search/ru.py b/sphinx/search/ru.py index aeab09fa62..52ff533832 100644 --- a/sphinx/search/ru.py +++ b/sphinx/search/ru.py @@ -4,243 +4,15 @@ from __future__ import annotations import snowballstemmer -from sphinx.search import SearchLanguage, parse_stop_word - -russian_stopwords = parse_stop_word(""" -| source: https://snowballstem.org/algorithms/russian/stop.txt -и | and -в | in/into -во | alternative form -не | not -что | what/that -он | he -на | on/onto -я | i -с | from -со | alternative form -как | how -а | milder form of `no' (but) -то | conjunction and form of `that' -все | all -она | she -так | so, thus -его | him -но | but -да | yes/and -ты | thou -к | towards, by -у | around, chez -же | intensifier particle -вы | you -за | beyond, behind -бы | conditional/subj. particle -по | up to, along -только | only -ее | her -мне | to me -было | it was -вот | here is/are, particle -от | away from -меня | me -еще | still, yet, more -нет | no, there isnt/arent -о | about -из | out of -ему | to him -теперь | now -когда | when -даже | even -ну | so, well -вдруг | suddenly -ли | interrogative particle -если | if -уже | already, but homonym of `narrower' -или | or -ни | neither -быть | to be -был | he was -него | prepositional form of его -до | up to -вас | you accusative -нибудь | indef. suffix preceded by hyphen -опять | again -уж | already, but homonym of `adder' -вам | to you -сказал | he said -ведь | particle `after all' -там | there -потом | then -себя | oneself -ничего | nothing -ей | to her -может | usually with `быть' as `maybe' -они | they -тут | here -где | where -есть | there is/are -надо | got to, must -ней | prepositional form of ей -для | for -мы | we -тебя | thee -их | them, their -чем | than -была | she was -сам | self -чтоб | in order to -без | without -будто | as if -человек | man, person, one -чего | genitive form of `what' -раз | once -тоже | also -себе | to oneself -под | beneath -жизнь | life -будет | will be -ж | short form of intensifer particle `же' -тогда | then -кто | who -этот | this -говорил | was saying -того | genitive form of `that' -потому | for that reason -этого | genitive form of `this' -какой | which -совсем | altogether -ним | prepositional form of `его', `они' -здесь | here -этом | prepositional form of `этот' -один | one -почти | almost -мой | my -тем | instrumental/dative plural of `тот', `то' -чтобы | full form of `in order that' -нее | her (acc.) -кажется | it seems -сейчас | now -были | they were -куда | where to -зачем | why -сказать | to say -всех | all (acc., gen. preposn. plural) -никогда | never -сегодня | today -можно | possible, one can -при | by -наконец | finally -два | two -об | alternative form of `о', about -другой | another -хоть | even -после | after -над | above -больше | more -тот | that one (masc.) -через | across, in -эти | these -нас | us -про | about -всего | in all, only, of all -них | prepositional form of `они' (they) -какая | which, feminine -много | lots -разве | interrogative particle -сказала | she said -три | three -эту | this, acc. fem. sing. -моя | my, feminine -впрочем | moreover, besides -хорошо | good -свою | ones own, acc. fem. sing. -этой | oblique form of `эта', fem. `this' -перед | in front of -иногда | sometimes -лучше | better -чуть | a little -том | preposn. form of `that one' -нельзя | one must not -такой | such a one -им | to them -более | more -всегда | always -конечно | of course -всю | acc. fem. sing of `all' -между | between - - - | b: some paradigms - | - | personal pronouns - | - | я меня мне мной [мною] - | ты тебя тебе тобой [тобою] - | он его ему им [него, нему, ним] - | она ее эи ею [нее, нэи, нею] - | оно его ему им [него, нему, ним] - | - | мы нас нам нами - | вы вас вам вами - | они их им ими [них, ним, ними] - | - | себя себе собой [собою] - | - | demonstrative pronouns: этот (this), тот (that) - | - | этот эта это эти - | этого эты это эти - | этого этой этого этих - | этому этой этому этим - | этим этой этим [этою] этими - | этом этой этом этих - | - | тот та то те - | того ту то те - | того той того тех - | тому той тому тем - | тем той тем [тою] теми - | том той том тех - | - | determinative pronouns - | - | (a) весь (all) - | - | весь вся все все - | всего всю все все - | всего всей всего всех - | всему всей всему всем - | всем всей всем [всею] всеми - | всем всей всем всех - | - | (b) сам (himself etc) - | - | сам сама само сами - | самого саму само самих - | самого самой самого самих - | самому самой самому самим - | самим самой самим [самою] самими - | самом самой самом самих - | - | stems of verbs `to be', `to have', `to do' and modal - | - | быть бы буд быв есть суть - | име - | дел - | мог мож мочь - | уме - | хоч хот - | долж - | можн - | нужн - | нельзя -""") +from sphinx.search import SearchLanguage +from sphinx.search._stopwords.ru import RUSSIAN_STOPWORDS class SearchRussian(SearchLanguage): lang = 'ru' language_name = 'Russian' js_stemmer_rawcode = 'russian-stemmer.js' - stopwords = russian_stopwords + stopwords = RUSSIAN_STOPWORDS def __init__(self, options: dict[str, str]) -> None: super().__init__(options) diff --git a/sphinx/search/sv.py b/sphinx/search/sv.py index 9a8232ef2b..bcfac2ba52 100644 --- a/sphinx/search/sv.py +++ b/sphinx/search/sv.py @@ -4,132 +4,15 @@ from __future__ import annotations import snowballstemmer -from sphinx.search import SearchLanguage, parse_stop_word - -swedish_stopwords = parse_stop_word(""" -| source: https://snowballstem.org/algorithms/swedish/stop.txt -och | and -det | it, this/that -att | to (with infinitive) -i | in, at -en | a -jag | I -hon | she -som | who, that -han | he -på | on -den | it, this/that -med | with -var | where, each -sig | him(self) etc -för | for -så | so (also: seed) -till | to -är | is -men | but -ett | a -om | if; around, about -hade | had -de | they, these/those -av | of -icke | not, no -mig | me -du | you -henne | her -då | then, when -sin | his -nu | now -har | have -inte | inte någon = no one -hans | his -honom | him -skulle | 'sake' -hennes | her -där | there -min | my -man | one (pronoun) -ej | nor -vid | at, by, on (also: vast) -kunde | could -något | some etc -från | from, off -ut | out -när | when -efter | after, behind -upp | up -vi | we -dem | them -vara | be -vad | what -över | over -än | than -dig | you -kan | can -sina | his -här | here -ha | have -mot | towards -alla | all -under | under (also: wonder) -någon | some etc -eller | or (else) -allt | all -mycket | much -sedan | since -ju | why -denna | this/that -själv | myself, yourself etc -detta | this/that -åt | to -utan | without -varit | was -hur | how -ingen | no -mitt | my -ni | you -bli | to be, become -blev | from bli -oss | us -din | thy -dessa | these/those -några | some etc -deras | their -blir | from bli -mina | my -samma | (the) same -vilken | who, that -er | you, your -sådan | such a -vår | our -blivit | from bli -dess | its -inom | within -mellan | between -sådant | such a -varför | why -varje | each -vilka | who, that -ditt | thy -vem | who -vilket | who, that -sitta | his -sådana | such a -vart | each -dina | thy -vars | whose -vårt | our -våra | our -ert | your -era | your -vilkas | whose -""") +from sphinx.search import SearchLanguage +from sphinx.search._stopwords.sv import SWEDISH_STOPWORDS class SearchSwedish(SearchLanguage): lang = 'sv' language_name = 'Swedish' js_stemmer_rawcode = 'swedish-stemmer.js' - stopwords = swedish_stopwords + stopwords = SWEDISH_STOPWORDS def __init__(self, options: dict[str, str]) -> None: super().__init__(options) diff --git a/sphinx/search/tr.py b/sphinx/search/tr.py index 82080bf5c6..674264f192 100644 --- a/sphinx/search/tr.py +++ b/sphinx/search/tr.py @@ -11,7 +11,7 @@ class SearchTurkish(SearchLanguage): lang = 'tr' language_name = 'Turkish' js_stemmer_rawcode = 'turkish-stemmer.js' - stopwords: set[str] = set() + stopwords = frozenset() def __init__(self, options: dict[str, str]) -> None: super().__init__(options) diff --git a/sphinx/search/zh.py b/sphinx/search/zh.py index c063631f86..d22f765d52 100644 --- a/sphinx/search/zh.py +++ b/sphinx/search/zh.py @@ -9,6 +9,7 @@ from typing import TYPE_CHECKING import snowballstemmer from sphinx.search import SearchLanguage +from sphinx.search._stopwords.en import ENGLISH_STOPWORDS if TYPE_CHECKING: from collections.abc import Iterator @@ -32,18 +33,6 @@ else: ) del jieba -english_stopwords = { - 'a', 'and', 'are', 'as', 'at', - 'be', 'but', 'by', - 'for', - 'if', 'in', 'into', 'is', 'it', - 'near', 'no', 'not', - 'of', 'on', 'or', - 'such', - 'that', 'the', 'their', 'then', 'there', 'these', 'they', 'this', 'to', - 'was', 'will', 'with', -} # fmt: skip - js_porter_stemmer = """ /** * Porter Stemmer @@ -237,7 +226,7 @@ class SearchChinese(SearchLanguage): lang = 'zh' language_name = 'Chinese' js_stemmer_code = js_porter_stemmer - stopwords = english_stopwords + stopwords = ENGLISH_STOPWORDS latin1_letters = re.compile(r'[a-zA-Z0-9_]+') def __init__(self, options: dict[str, str]) -> None: