반응형
Recent Posts
Recent Comments
관리 메뉴

개발잡부

[es] Shingle Test 본문

ElasticStack/Elasticsearch

[es] Shingle Test

닉의네임 2022. 12. 11. 14:55
반응형
PUT doo_shingle
{
  "settings": {
    "analysis": {
      "filter": {
        "doo_shingle_filter": {
          "type": "shingle",
          "min_shingle_size": 3,
          "max_shingle_size": 4
        }
      }
    }
  }
}

 

min_shingle_size / max_shingle_size : shingle의 최소 / 최대 단어 개수를 지정. 디폴트는 모두 2 

output_unigrams : Shingle 외에도 각각의 개별 토큰(unigram)도 저장 하는지의 여부를 설정. 디폴트는 true 

output_unigrams_if_no_shingles : shingle 을 만들 수 없는 경우에만 개별 토큰을 저장하는지의 여부를 설정  디폴트는 false 

token_separator : 토큰 구분자 - 디폴트는 " " (스페이스)

filler_token : shing을 만들 텀이 없는 경우 (보통은 stop 토큰 필터와 함께 사용되어 offset 위치만 있고 텀이 없는 경우) 대체할 텍스트를 지정  디폴트는 "_" 

 
GET doo_shingle/_analyze
{
  "tokenizer": "whitespace",
  "filter": [
    "doo_shingle_filter"
  ],
  "text": "진격의 거인과 에렌예거"
}
 
{
  "tokens" : [
    {
      "token" : "진격의",
      "start_offset" : 0,
      "end_offset" : 3,
      "type" : "word",
      "position" : 0
    },
    {
      "token" : "진격의 거인과 에렌예거",
      "start_offset" : 0,
      "end_offset" : 12,
      "type" : "shingle",
      "position" : 0,
      "positionLength" : 3
    },
    {
      "token" : "거인과",
      "start_offset" : 4,
      "end_offset" : 7,
      "type" : "word",
      "position" : 1
    },
    {
      "token" : "에렌예거",
      "start_offset" : 8,
      "end_offset" : 12,
      "type" : "word",
      "position" : 2
    }
  ]
}
 
PUT doo_stop_shingle
{
  "settings": {
    "analysis": {
      "filter": {
        "doo_shingle_stop_filter": {
          "type": "shingle",
          "min_shingle_size": 3,
          "max_shingle_size": 4,
          "output_unigrams": false,
          "filler_token": "-"
        },
        "doo_stop_filter": {
          "type": "stop",
          "stopwords": [
            "is"
          ]
        }
      }
    }
  }
}​
 
GET doo_stop_shingle/_analyze
{
  "tokenizer": "whitespace",
  "filter": [
    "doo_shingle_stop_filter",
    "doo_stop_filter"
  ],
  "text": "this is my sweet home"
}

 

반응형

'ElasticStack > Elasticsearch' 카테고리의 다른 글

[es] nested object sort  (0) 2023.01.17
[es] 데이터 계층을 사용한 데이터 수명 주기 관리  (1) 2023.01.02
[es] Edge NGram Test  (0) 2022.12.11
[es] NGram Test  (0) 2022.12.11
[es] filter script  (0) 2022.11.30
Comments