Current section
Files
Jump to
Current section
Files
lib/something/schema.ex.ja
defmodule Something.Schema do
use ESx.Schema
defstruct [:id, :title]
mapping do
indexes :ngram_analyzer, type: "string", analyzer: "ngram_analyzer"
indexes :ja_analyzer, type: "string", analyzer: "ja_analyzer"
indexes :romajiyomi_analyzer, type: "string", analyzer: "romajiyomi_analyzer"
indexes :kanayomi_analyzer, type: "string", analyzer: "kanayomi_analyzer"
indexes :multiple, type: "string", analyzer: "ngram_analyzer", search_analyzer: "ngram_analyzer"
end
analysis do
tokenizer :ngram_tokenizer,
type: "nGram", min_gram: "2", max_gram: "3",
token_chars: ["letter", "digit"]
analyzer :ngram_analyzer,
tokenizer: "ngram_tokenizer",
char_filter: ["html_strip", "kuromoji_iteration_mark"],
filter: ["lowercase", "kuromoji_stemmer", "cjk_width"]
# ..
filter :ja_posfilter,
type: "kuromoji_part_of_speech",
stoptags: ["助詞-格助詞-一般", "助詞-終助詞"]
filter :romajiform,
type: "kuromoji_readingform",
use_romaji: true
filter :katakanaform,
type: "kuromoji_readingform",
use_romaji: false
filter :split_delimiter,
type: "word_delimiter",
generate_word_parts: true,
generate_number_parts: false,
catenate_words: false,
catenate_numbers: false,
catenate_all: false,
split_on_case_change: false,
preserve_original: false,
split_on_numerics: false,
stem_english_possessive: false
tokenizer :ja_tokenizer,
mode: "search",
type: "kuromoji_tokenizer"
analyzer :ja_analyzer,
type: "custom",
tokenizer: "ja_tokenizer",
char_filter: ["html_strip", "kuromoji_iteration_mark"],
filter: ["lowercase", "ja_posfilter", "kuromoji_stemmer", "cjk_width", "kuromoji_baseform"]
analyzer :romajiyomi_analyzer,
type: "custom",
tokenizer: "ja_tokenizer",
char_filter: ["html_strip", "kuromoji_iteration_mark"],
filter: ["lowercase", "ja_posfilter", "kuromoji_stemmer", "cjk_width", "kuromoji_baseform", "romajiform"]
analyzer :kanayomi_analyzer,
type: "custom",
tokenizer: "ja_tokenizer",
char_filter: ["html_strip", "kuromoji_iteration_mark"],
filter: ["lowercase", "ja_posfilter", "kuromoji_stemmer", "cjk_width", "kuromoji_baseform", "katakanaform", "split_delimiter"]
end
def as_indexed_json(%{} = schema, opts) do
Poison.encode! schema
end
end