diff options
author | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2020-03-21 11:53:22 +0300 |
---|---|---|
committer | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2020-03-21 11:53:22 +0300 |
commit | c7e590818a16704620d029616e3d59d3d48446a5 (patch) | |
tree | cf502b832fdba41d3359a64232d2dd8884a763f5 /sphinx/search | |
parent | a3a775b1e8c09624c987eb34ea4d263063bb029b (diff) | |
parent | bdfb112f0d7d75ca6a07a917b0395216c4917283 (diff) |
Merge branch '3.x'
Diffstat (limited to 'sphinx/search')
-rw-r--r-- | sphinx/search/__init__.py | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/sphinx/search/__init__.py b/sphinx/search/__init__.py index 118bfcc55..25a804816 100644 --- a/sphinx/search/__init__.py +++ b/sphinx/search/__init__.py @@ -39,6 +39,14 @@ class SearchLanguage: This is a set of stop words of the target language. Default `stopwords` is empty. This word is used for building index and embedded in JS. + .. attribute:: js_splitter_code + + Return splitter funcion of JavaScript version. The function should be + named as ``splitQuery``. And it should take a string and return list of + strings. + + .. versionadded:: 3.0 + .. attribute:: js_stemmer_code Return stemmer class of JavaScript version. This class' name should be @@ -51,6 +59,7 @@ class SearchLanguage: lang = None # type: str language_name = None # type: str stopwords = set() # type: Set[str] + js_splitter_code = None # type: str js_stemmer_rawcode = None # type: str js_stemmer_code = """ /** @@ -421,11 +430,16 @@ class IndexBuilder: self._mapping.setdefault(stemmed_word, set()).add(docname) def context_for_searchtool(self) -> Dict[str, Any]: + if self.lang.js_splitter_code: + js_splitter_code = self.lang.js_splitter_code + else: + js_splitter_code = self.js_splitter_code + return { 'search_language_stemming_code': self.lang.js_stemmer_code, 'search_language_stop_words': jsdump.dumps(sorted(self.lang.stopwords)), 'search_scorer_tool': self.js_scorer_code, - 'search_word_splitter_code': self.js_splitter_code, + 'search_word_splitter_code': js_splitter_code, } def get_js_stemmer_rawcode(self) -> str: |