---
url: /elk.md
---
## ik分词器

常规的最常用的使用方式就是，
数据插入存储时用 ik_max_word模式分词，
检索时，用ik_smart模式分词，即：索引时最大化的将文章内容分词，搜索时更精确的搜索到想要的结果

## docker

https://www.docker.elastic.co/

## elasticsearch

```

curl -X <VERB> '<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>' -d '<BODY>'

curl -X PUT "localhost:9200/{index}"


curl -X POST "localhost:9200/{index}/_doc/" -H 'Content-Type: application/json' -d'
{
  "@timestamp": "2021-04-01T00:00:00",
  "message": "Elasticsearch is fun to learn!"
}'



curl -X GET "localhost:9200/{index}/_search" -H 'Content-Type: application/json' -d'
{
  "query": {
    "match": {
      "message": "fun"
    }
  }
}'


curl -X POST "localhost:9200/{index}/_update/{id}" -H 'Content-Type: application/json' -d'
{
  "doc": {
    "message": "Elasticsearch is super fun to learn!"
  }
}'

_search  query( term、prefix、wildcard、fuzzy,boost) aggs
_msearch
_doc 创建文档时
_mapping
_bulk
_delete_by_query
_update
_refresh
_sql


Query DSL(Domain Specific Language)  特定领域的语言

倒排索引的底层实现是基于：FST（Finite State Transducer）数据结构。
lucene 从 4+版本后开始大量使用的数据结构是 FST。FST 有两个优点：
1、空间占用小。通过对词典中单词前缀和后缀的重复利用，压缩了存储空间；
2、查询速度快。O(len(str))的查询时间复杂度。 

搜索过程 query then fetch




```

## semantic_text、dense_vector、sparse_vector

```

semantic_text适合快速上手，dense_vector适合需要高灵活性的场景，sparse_vector则在词级精准匹配和混合搜索中表现出色

sparse_vector：词级精准的稀疏向量

dense_vector：灵活的密集向量存储

semantic_text：简单易用的语义搜索


```

# restful

```
GET /_cat/indices?v

```
