summaryrefslogtreecommitdiff
path: root/static/js/lunr/lunr.jp.js
diff options
context:
space:
mode:
Diffstat (limited to 'static/js/lunr/lunr.jp.js')
-rw-r--r--static/js/lunr/lunr.jp.js120
1 files changed, 0 insertions, 120 deletions
diff --git a/static/js/lunr/lunr.jp.js b/static/js/lunr/lunr.jp.js
deleted file mode 100644
index 90a7629..0000000
--- a/static/js/lunr/lunr.jp.js
+++ /dev/null
@@ -1,120 +0,0 @@
-/*!
- * Lunr languages, `Japanese` language
- * https://github.com/MihaiValentin/lunr-languages
- *
- * Copyright 2014, Chad Liu
- * http://www.mozilla.org/MPL/
- */
-/*!
- * based on
- * Snowball JavaScript Library v0.3
- * http://code.google.com/p/urim/
- * http://snowball.tartarus.org/
- *
- * Copyright 2010, Oleg Mazko
- * http://www.mozilla.org/MPL/
- */
-
-/**
- * export the module via AMD, CommonJS or as a browser global
- * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js
- */
-;
-(function(root, factory) {
- if (typeof define === 'function' && define.amd) {
- // AMD. Register as an anonymous module.
- define(factory)
- } else if (typeof exports === 'object') {
- /**
- * Node. Does not work with strict CommonJS, but
- * only CommonJS-like environments that support module.exports,
- * like Node.
- */
- module.exports = factory()
- } else {
- // Browser globals (root is window)
- factory()(root.lunr);
- }
-}(this, function() {
- /**
- * Just return a value to define the module export.
- * This example returns an object, but the module
- * can return a function as the exported value.
- */
- return function(lunr) {
- /* throw error if lunr is not yet included */
- if ('undefined' === typeof lunr) {
- throw new Error('Lunr is not present. Please include / require Lunr before this script.');
- }
-
- /* throw error if lunr stemmer support is not yet included */
- if ('undefined' === typeof lunr.stemmerSupport) {
- throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.');
- }
-
- /* register specific locale function */
- lunr.jp = function() {
- this.pipeline.reset();
- this.pipeline.add(
- lunr.jp.stopWordFilter,
- lunr.jp.stemmer
- );
- // change the tokenizer for japanese one
- lunr.tokenizer = lunr.jp.tokenizer;
- };
- var segmenter = new TinySegmenter(); // インスタンス生成
-
- lunr.jp.tokenizer = function (obj) {
- if (!arguments.length || obj == null || obj == undefined) return [];
- if (Array.isArray(obj))
- return obj.map(function (t) {
- return t.toLowerCase();
- });
-
- var str = obj.toString().replace(/^\s+/, '');
-
- for (var i = str.length - 1; i >= 0; i--) {
- if (/\S/.test(str.charAt(i))) {
- str = str.substring(0, i + 1);
- break;
- }
- }
-
- var segs = segmenter.segment(str); // 単語の配列が返る
- return segs
- .filter(function (token) {
- return !!token;
- })
- .map(function (token) {
- return token;
- });
- };
-
- /* lunr stemmer function */
- lunr.jp.stemmer = (function () {
- /* TODO japanese stemmer */
- return function (word) {
- return word;
- };
- })();
-
- lunr.Pipeline.registerFunction(lunr.jp.stemmer, 'stemmer-jp');
-
- /* stop word filter function */
- lunr.jp.stopWordFilter = function(token) {
- if (lunr.jp.stopWordFilter.stopWords.indexOf(token) === -1) {
- return token;
- }
- };
-
- lunr.jp.stopWordFilter.stopWords = new lunr.SortedSet();
- lunr.jp.stopWordFilter.stopWords.length = 45;
-
- // The space at the beginning is crucial: It marks the empty string
- // as a stop word. lunr.js crashes during search when documents
- // processed by the pipeline still contain the empty string.
- // stopword for japanese is from http://www.ranks.nl/stopwords/japanese
- lunr.jp.stopWordFilter.stopWords.elements = ' これ それ あれ この その あの ここ そこ あそこ こちら どこ だれ なに なん 何 私 貴方 貴方方 我々 私達 あの人 あのかた 彼女 彼 です あります おります います は が の に を で え から まで より も どの と し それで しかし'.split(' ');
- lunr.Pipeline.registerFunction(lunr.jp.stopWordFilter, 'stopWordFilter-jp');
- };
-}))