El estudio de ElasticSearch señala tres

Tabla de contenido

Principio de índice subyacente de ES 

Tokenizador IK

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.

Supongo que te gusta

Origin blog.csdn.net/weixin_37841366/article/details/109412252
Recomendado
Clasificación