'
을 삭제. '
뒤에 붙어있는 글자는 삭제됨's
과 .
을 삭제 (classic tokenizer와 사용)|
), encoding 옵션으로 payload data type 설정 가능.PUT delimited_payload_example
{
"settings": {
"analysis": {
"analyzer": {
"whitespace_plus_delimited": {
"tokenizer": "whitespace",
"filter": [ "plus_delimited" ]
}
},
"filter": {
"plus_delimited": {
"type": "delimited_payload",
"delimiter": "+",
"encoding": "int"
}
}
}
}
}
GET _analyze
{
"tokenizer": "standard",
"filter": [
{
"type": "dictionary_decompounder",
"word_list": ["Donau", "dampf", "meer", "schiff"]
}
],
"text": "Donaudampfschiff"
}
[Donaudampfschiff, Donau, dampf, schiff]
GET _analyze
{
"tokenizer": "standard",
"filter": [
{
"type": "hyphenation_decompounder",
"hyphenation_patterns_path": "analysis/hyphenation_patterns.xml",
"word_list": ["Kaffee", "zucker", "tasse"]
}
],
"text": "Kaffeetasse"
}
[Kaffeetasse, Kaffee, tasse]
11-1. N-gram: 토큰을 정해진 길이만큼 잘라서 토큰화 하는 filter
min_gram(default=1), max_gram(default=2)을 설정하여야 함
GET _analyze
{
"tokenizer": "standard",
"filter": [ "ngram" ],
"text": "Quick fox"
}
[ Q, Qu, u, ui, i, ic, c, ck, k, f, fo, o, ox, x ]
11-2. Edge n-gram: 토큰의 처음부터 설정한 길이만큼 잘라서 토큰화 하는 n-gram.
min_gram, max_gram을 설정하여야 함 (default=1)
max_gram 보다 긴 search terms는 어떠한 indexed terms도 검색되지 않는다. 예를 들어 apple로 app을 검색할 수 없다. edge n-gram의 한계이므로 사용할 때 주의.
n-gram과 달리 각 토큰의 처음부터 정해진 길이까지만 저장한다는 것에 주의.
GET _analyze
{
"tokenizer": "standard",
"filter": [
{ "type": "edge_ngram",
"min_gram": 1,
"max_gram": 2
}
],
"text": "the quick brown fox jumps"
}
[ t, th, q, qu, b, br, f, fo, j, ju ]
PUT /test_index
{
"settings": {
"index" : {
"analysis" : {
"analyzer" : {
"synonym" : {
"tokenizer" : "whitespace",
"filter" : ["synonym"]
}
},
"filter" : {
"synonym" : {
"type" : "synonym",
"synonyms_path" : "analysis/synonym.txt"
}
}
}
}
}
}
# sysnonyms setting in sysnonyms.txt
# replacement
i-pod, i pod => ipod,
sea biscuit, sea biscit => seabiscuit
# equivalent sysnonyms
ipod, i-pod, i pod
foozball , foosball
universe , cosmos
lol, laughing out loud
# merging multiple sysnonyms
foo => foo bar
foo => baz
# is equivalent to
foo => foo bar, baz
# expand option
# true
ipod, i-pod, i pod => ipod, i-pod, i pod
# false
ipod, i-pod, i pod => ipod
's
삭제GET _analyze
{
"tokenizer": "standard",
"filter": [
{
"type": "keep_types",
"types": [ "<NUM>" ]
}
],
"text": "1 quick fox 2 lazy dogs"
}
[ 1, 2 ]
GET _analyze
{
"tokenizer": "whitespace",
"filter": [
{
"type": "keyword_marker",
"keywords": [ "jumping" ]
},
"stemmer"
],
"text": "fox running and jumping"
}
[ fox, run, and, jumping ]
# jumping이 jump로 stemming 되지 않고 원형으로 저장됨
27-1. lowercase: 모든 token을 소문자로 변환
27-2. uppercase: 모든 token을 대문자로 변환
min hash: 가장 작은 hash 값만 저장하는 filter. min hash로 similarity롤 비교하는 이론을 바탕으로 함.
multiplexer: 여러 개의 filter를 합하여 모든 filter의 output을 저장하는 filter. preserve_original이 default to true로 되어 있어 원형 또한 저장된다.
pattern capture: java 정규표현식으로 설정한 pattern에 맞는 subword를 저장하는 filter. preserve_original이 default to true 이므로 원형이 저장됨.
hightlight를 하게 되면 원형이 highlighting 된다.
pattern replace: java 정규표현식으로 설정한 pattern을 설정한 특정 단어로 대체하는 filter.
porter stem: algorithmic stemming for english. it needs lowercase filter to work properly.
predicate script: 설정한 predicate script에 해당되지 않는 token을 삭제하는 filter
filter 내 script: source에 함수를 설정
remove duplicates: 같은 position이며 중복되는 token을 삭제.
stemmer와 preserve_original을 지원하는 filter를 같이 쓸 때 사용하면, 중복 제게에 용이함.
reverse: 각 token을 거꾸로 저장
shingle: token n-gram. token을 정해진 갯수만큼 붙혀서 저장하는 filter.
For example, the sentence "please divide this sentence into shingles" might be tokenized into shingles "please divide", "divide this", "this sentence", "sentence into", and "into shingles".
snowball: snowball-generated stemmer
stemmer: algorithmic stemming for various languages
stmmer override: overriding stemming algorithms. rules_path에 규칙을 설정한 txt 파일 경로를 설정해두면, 규칙대로 stemming이 된다. 규칙에 속한 단어가 stemming 되지 않게 보호하는데 용이함.
stop: 정해진 stop words를 token stream에서 삭제하는 filter
custom 하지 않으면 default로 있는 단어들을 삭제함 (english)
trim: remove leadig and trailing whitespace of each token in a stream
truncate: 설정한 길이만큼 token을 잘라서 저장.
For example, you can use the truncate filter to shorten all tokens to 3 characters or fewer, changing jumping fox to jum fox.
unique: position에 상관없이 중복되는 token 모두 제거. 만약 only_on_same_position을 true로 한다면 remove_duplicates_filter 랑 같음.