Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/sphinx-doc/sphinx.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakeshi KOMIYA <i.tkomiya@gmail.com>2020-03-21 11:53:22 +0300
committerTakeshi KOMIYA <i.tkomiya@gmail.com>2020-03-21 11:53:22 +0300
commitc7e590818a16704620d029616e3d59d3d48446a5 (patch)
treecf502b832fdba41d3359a64232d2dd8884a763f5 /sphinx/search
parenta3a775b1e8c09624c987eb34ea4d263063bb029b (diff)
parentbdfb112f0d7d75ca6a07a917b0395216c4917283 (diff)
Merge branch '3.x'
Diffstat (limited to 'sphinx/search')
-rw-r--r--sphinx/search/__init__.py16
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: