πŸ’ BE TIL Day 32 0426

JBΒ·2022λ…„ 4μ›” 26일
0

CodeCamp BE 02

λͺ©λ‘ 보기
28/30

⬇️ Main Note
https://docs.google.com/document/d/17KKtCXe_nuQsuk9E_6050v01H_IAHBfYQtG11G06jas/edit

⚠️ Warning ⚠️ Today's post contains a lot of images


🌿 Inverted Text

(역색인)
"Hello this is Monstershop. We are the best shop"
➀ Every single words are tokenized, and they are now tokens.

By tokenizing, elasticsearch can quickly search the words from the context.
➀ Faster than mysql (mysql searches in this format : "title":%Hello%)
➀ Full-text search (efficient for searching a sentence)
➀ "Hello" is saved as a token, so only need to get that "Hello" token.


🌿 Analyzer

➀ Analyzes how the searching works

Default Anlayzers
< Character-Filter > ➀ removes things like ["!","~","@", "#"]
< Tokenizer > ➀ splits by spaces
< Token-Filter > ➀ Uppercase to lowercase


🌿 Elasticsearch Settings vs. Mappings

Settings:Analyzer, Tokenizer, Token-filter settings
Mappings: Set which analyzer the devloper wants to use for analyzing column

  • For mappings, once the change is set, developer cannot commit any changes.
  • But developer can add mappings.

🌿 Query [match / prefix]

⬇️ Match: Get the result that literally matches the user input(search word the use types in).

⬇️ Prefix: More like automatic complete search.


🌿 VS Code Practice

{
  "template": "*",
  "settings": {
    "analysis": {
      "analyzer": {
        "tattoo_ngram_analyzer": {
          "type": "custom",
          "tokenizer": "tattoo_ngram_tokenizer",
          "filter": ["lowercase", "my_stop_filter"]
        }
      },
      "tokenizer": {
        "tattoo_ngram_tokenizer": {
          "type": "nGram",
          "min_gram": "1",
          "max_gram": "10"
        }
      },
      "filter": {
        "my_stop_filter": {
          "type": "stop",
          "stopwords": ["the", "in", "..."]
        }
      }
    },
    "max_ngram_diff": "20"
  },

  "mappings": {
    "properties": {
      "name": {
        "type": "text"
      },
      "description": {
        "type": "text",
        "analyzer": "tattoo_ngram_analyzer"
      },
      "price": {
        "type": "long"
      }
    }
  }
}

🌿 Applying to Nest.js

profile
두비두λ°₯λ°₯

0개의 λŒ“κΈ€