Tabla de contenido
Principio de índice subyacente de ES
Personalizar palabras de extensión y palabras vacías en IK
Principio de índice subyacente de ES
Tokenizador IK
1. Definición : es dividir las palabras clave en un texto.
Soy el compañero de clase de Xiao Ming
Principio de segmentación de palabras: dividir palabras clave para eliminar palabras vacías y palabras vacías
2. Segmentación de palabras proporcionada en ES
1. El analizador estándar predeterminado Analizador estándar Inglés: segmentación de palabras Chino: segmentación de palabras de un solo carácter
2. Analizador simple simple Inglés: segmentación de palabras eliminar el número Chino: sin segmentación de palabras
3. Pruebe diferentes tokenizadores
GET /_analyzer
{
"analyzer":"simple",
"text":"redis 非常好用 111"
}
- El resultado de la segmentación estándar es: redis es muy fácil de usar 111
- El resultado de una simple segmentación de palabras es: redis es muy fácil de usar
4.github basado en el tokenizador ES tokenizer IK
Nota: El uso del tokenizador IK y la versión ES debe ser estrictamente consistente
5. ¿Cuál es la diferencia entre ik_max_word e ik_smart?
- ik_max_word: el texto se dividirá con la mayor granularidad , como "Soy el compañero de clase de Xiao Ming" en "Soy el compañero de clase de Xiao Ming", "Yo soy", "Soy Xiao Ming", "El compañero de clase de Xiao Ming" , "Classmate", agotará todas las combinaciones posibles. Soy el compañero de clase de Xiao Ming
- ik_smart: Hará la división más burda , como dividir "Soy el compañero de clase de Xiao Ming" en "Soy el compañero de clase de Xiao Ming".
PUT /emp
{
"mappings":{
"emp":{
"properties":{
"name":{
"type":"text",
"analyzer":"ik_max_word"
},
"age":{
"type":"integer"
},
"bir":{
"type":"date"
},
"content":{
"type":"text",
"analyzer":"ik_max_word"
},
"address":{
"type":"keyword"
}
}
}
}
}
Personalizar palabras de extensión y palabras vacías en IK
1. Palabras de expansión
Definición: el tokenizador ik existente no puede segmentar esta palabra en una palabra clave, pero espera que cierta palabra se convierta en una palabra clave.
ik tokenizer, etc. se puede dividir en palabras clave, como algunas palabras populares en línea
Configure el archivo de configuración IK: el nombre en el directorio / plugins / ik / config bajo el directorio de instalación de ES: IKAnalyzer.cfg.xml
Modifique el archivo de configuración para agregar la siguiente configuración:
<! - Los usuarios pueden configurar su propio diccionario ampliado aquí>
<entry key = "ext_dict"> ext.dic </entry>
2. Detener las palabras
Definición: El tokenizador ik existente divide una palabra clave en una palabra, pero por alguna razón esta palabra no puede aparecer como palabra clave.
<entry key = "ext_stopwords"> stopext.dic </entry>
3. Configurar diccionario de extensión remota
ES中Query
1. ¡Cadena de consulta! Consulta de consulta DSL
Consulta de palabras clave -----> calcular puntuación, ordenar, etc. series
2. Filter Quey La eficiencia de la consulta del filtro es relativamente alta
Filtre los datos que cumplan con las condiciones --------> La puntuación del documento no se calculará, clasificará, no se utilizará comúnmente Filtre automáticamente los resultados de uso común
Debe usar expresiones bool para combinar dos consultas
Nota: Cuando filterQuery y query se usan en combinación, primero se ejecuta la instrucción en fiterQuery y luego se ejecuta la instrucción en query
El filtrado es adecuado para filtrar datos en un amplio rango , mientras que la consulta es adecuada para hacer coincidir datos de manera exacta . En aplicaciones generales, los datos de filtro deben usarse primero y luego deben usarse los datos de coincidencia de consultas.