Red de conocimiento informático - Conocimiento informático - Cómo leer la información del índice dividido de elasticsearch

Cómo leer la información del índice dividido de elasticsearch

I. Preparación del complemento

Hay introducciones en Internet que pueden usar directamente el método medcl/elasticsearch-analysis-ik de instalación del complemento, pero el efecto que logré fue descargar el código fuente. del complemento, y elasticsearch solo se usó como _site. Solo mire el complemento.

Entonces, la única forma es ejecutar maven y copiar el archivo jar empaquetado al directorio principal. (De lo contrario, obtendrá un error de clase no encontrada al definir el analizador para el mapa).

Dado que IK es un análisis basado en diccionario, también debe descargar el archivo del diccionario IK, que se proporciona en elasticsearch-RTF de medcl y se puede descargar desde la siguiente dirección:

/downloads/ medcl/elasticsearch-analysis-ik/ik.zip

Downloads/medcl/elasticsearch-analysis-ik/ik.zip

Después de descargarlo, desinstálelo. En este punto, es posible que deba reiniciar elasticsearch para que la siguiente parte de la definición pueda surtir efecto de inmediato.

En segundo lugar, definición de segmentación de palabras

Después de definir (declarar) el tipo de segmentación de palabras en elasticsearch, el complemento de segmentación de palabras está listo (viene con varios tipos, por ejemplo, estándar No se requiere una definición especial). Al igual que otras configuraciones, la definición de tokenización se puede realizar a nivel del sistema (alcance global de elasticsearch) o a nivel de índice (visible solo en el índice actual). La definición a nivel de sistema, por supuesto, se define en el archivo

elasticsearch.yml en el directorio conf, y su contenido general es el siguiente:

índice:

análisis:

p>

analizador:

ikAnalyzer:

Alias: [ik]

Tipo: org.elasticsearch.index. análisis.IkAnalyzerProvider

O index.analysis.analyzer.ik.type: "ik"

Debido a preferencias personales, no hice esto, pero lo definí en el índice que necesita utilizar la segmentación de palabras chinas, que es más flexible, no afectará a otros índices.

Antes de definir analizar, cierre el índice primero. De hecho, no es necesario cerrar el índice para que surta efecto, pero por razones de coherencia de los datos, es mejor cerrarlo primero.

ik-1.2.5.jar. Copie este archivo jar al directorio ES_HOME/plugins/analysis-ik o créelo si no existe.

2. Copie el directorio ik

Copie el directorio ik del directorio de descarga al directorio ES_HOME/config.

3. Configuración del segmentador

Abra el archivo ES_HOME/config/elasticsearch.yml y agregue el siguiente contenido al final del archivo:

index:

análisis:

analizador:

ik:

alias: [ik_analyzer]

tipo: org.elasticsearch.index.analysis .IkAnalyzerProvider

ik_max_word:

Tipo: ik

use_ smart: false

ik_smart:

Tipo: ik

use_smart: true

o

index.analysis.analyzer.default.type: ik

¡OK! La instalación del complemento se ha completado, reinicie ES y luego pruebe el efecto ik splitter.

3. Prueba de segmentación de palabras ik

1. Cree un índice y asígnele el nombre índice.

curl -XPUT http://localhost:9200/index

2. Cree una asignación de índice para index.

curl -XPOST http ://localhost:9200/index/fulltext/_mapping -d'

{

"fulltext":{

"_all": {

"analizador": "ik"

},

" propiedades": {

"contenido": {

"tipo" : "cadena",

"impulso" : 8.0,

"term_vector" : "with_positions_offsets", p>

" analizador " : "ik",

"include_in_all" : verdadero

}

}

}

}

}

}

}'

3. Prueba

curl 'http://localhost:9200/index/_ analyzer?analyzer=ik&pretty=true' -d '

{

"text" : "El mundo es un gran lugar "

}'

Muestra los siguientes resultados:

{

"tokens": [ {

"token" : "texto",

"start_offset" : 4,

"end_offset" : 8,

"tipo" : "INGLÉS" ,

p>

"posición" : 1

}, {

"token" : " MUNDO ",

"start_offset" : 11,

p>

"end_offset" : 13,

"tipo": "CN_WORD",

"posición" : 2

}, {

"token" : "entonces",

"posición" : 2

}, {

" token" : "so",

"posición" : 1

}, {

"token" : offset" : 15,

"end_offset" : 17 ,

"tipo" : "CN_WORD",

"posición" : 4

}.]

}