Elasticsearch instala el segmentador de palabras chinas ik

Como sugiere el nombre, el tokenizador sirve para segmentar texto. Actualmente, es nos proporciona estándar (bueno para idiomas occidentales), icu (para el sudeste asiático y otras regiones), ik (chino) y algunos menos utilizados como Letter Tokenizer (para segmentación sin caracteres), analizador de espacios en blanco (para cada uno al encontrar la segmentación de espacios en blanco).

Tipo de tokenizador:

  1. Estándar: método de segmentación de un solo carácter, un carácter se divide en una palabra. ( es el tokenizador predeterminado )
  2. CJKAnalyzer: método de segmentación binaria, que trata dos caracteres adyacentes como una palabra.
  3. SmartChineseAnalyzer: Buen soporte para chino, pero escasa escalabilidad, y no es fácil manejar sinónimos extendidos y palabras vacías.
  4. paoding`: Paoding Jie Niu word segmenter, sin actualización continua, solo es compatible con lucene3.0.
  5. mmseg4`: es compatible con Lucene 4.10 y se actualiza continuamente en github, utilizando el algoritmo mmseg.
  6. Tokenizador de espacios en blanco: elimina espacios, no admite chino y no realiza ningún otro procesamiento estandarizado en la unidad de vocabulario generada.
  7. tokenizador de idioma: un tokenizador para un idioma específico, el chino no es compatible.
  8. IK-analyzer: el segmentador de palabras chinas más popular .

Instalar IK-analyzer

  1. Descarga ik 中 文字 分 器
  2. Descomprima en el directorio / usr / share / elasticsearch / plugins / ik
unzip elasticsearch-analysis-ik-7.9.3.zip -d /data/local/elasticsearch/9200/plugins/ik

Inserte la descripción de la imagen aquí
3. Reinicie elasticsearch
4. Pruebe el efecto de segmentación de palabras
Inserte la descripción de la imagen aquí

Utilice el analizador de IK

Use ik_max_word (detallado) al indexar

#建立索引时使用ik_max_word分词
PUT _template/request_log
{
    
    
  "index": {
    
    
    "refresh_interval": "5s",
    "analysis": {
    
    
      "analyzer": {
    
    
        "ik": {
    
    
          "tokenizer": "ik_max_word"
        }
      }
    }
  }
}

Configurar el tokenizador para un solo campo

 "字段名称": {
    
    
   "type":     "text",
   "analyzer": "ik_max_word"
}

Utilice ik_smart (de grano grueso) al buscar

GET /request_log-app-2020.06.08/_search
{
    
    
  "query": {
    
    
    "match_phrase" : {
    
      
          "operation" : {
    
    
              "query" : "发货",
              "analyzer" : "ik_smart"
          }
      }
  }
}

Comandos relacionados

#测试分词结果
GET _analyze
{
    
    
  "analyzer": "ik_smart", //指定分词器	
  "text": ["要测试的字符串"]
}
#获取document中的某个field内的各个term的统计信息。
GET /索引/_termvectors/文档id
{
    
    
  "fields":["字段1"]
}

Supongo que te gusta

Origin blog.csdn.net/chen_cxl/article/details/111247546
Recomendado
Clasificación