Anterior: ElasticSearch (6) -Kibana plugin
1. Índice directo e índice inverso
Cuando se trata del concepto de índices, primero debe saber que los índices pueden dividirse en índices directos e índices inversos (que también pueden entenderse como índices invertidos).
Índice de avance:
El índice directo puede entenderse simplemente como documento a palabra . Por ejemplo, ahora hay 4 documentos,
Doc | Palabras |
---|---|
Doc1 | En el camino de la vida |
Doc2 | nunca retirarse de todo el cuerpo |
Doc3 | disfruta de sus logros y obtén algo por nada |
Doc4 | Si no trabajas duro, estás fuera |
Establecer un índice positivo primero analizará las palabras que aparecen en cada documento, y luego establecerá la relación de mapeo del documento a la palabra.
Doc | Palabras |
---|---|
Doc1 | En el camino de la vida |
Doc2 | nunca, retirarse, del cuerpo entero |
Doc3 | disfrutar, sus logros, y obtener algo, por nada |
Doc4 | Si usted no trabaja duro, está fuera |
Índice inverso:
El índice inverso puede entenderse simplemente como palabras a documentos . Tomando los 4 documentos anteriores como ejemplo, establecer un índice inverso establecerá la relación de mapeo entre palabras y documentos
Palabra | Doc |
---|---|
En | Doc1 , |
el | Doc1, Doc2, |
la carretera | Doc1 |
...... | ...... |
El índice inverso no solo puede registrar la posición de una palabra en el documento, sino también registrar el número de apariciones en el documento. Por ejemplo, en la tabla anterior On
en Doc1
aparecer más de una vez, la palabra you
en Doc4
la aparición de dos veces en.
2. ¿Por qué ElasticSearch no utiliza el índice directo?
Si se utiliza un índice hacia adelante, cuando un usuario ingresa una palabra clave de búsqueda, recorrerá todos los documentos para encontrar el documento que contiene la palabra clave. Responde datos al usuario. Sin embargo, ElasticSearch a menudo se usa para tratar las necesidades de algunas aplicaciones con grandes cantidades de datos (como la búsqueda de Baidu, etc.), el uso de la eficiencia de indexación directa es demasiado bajo para responder a los datos en tiempo real. Por lo tanto, es más razonable utilizar el índice inverso (índice invertido) en este momento.
3. Caso de índice invertido
Ahora que hay una castaña como la siguiente, necesitamos establecer un índice invertido en el documento que se muestra en la figura a continuación. (La imagen proviene de la red)
Use el tokenizer para segmentar el contenido en el documento. Y registre el número de documento donde aparecen estas palabras.
Ahora bien, si un usuario desea buscar 谷歌
, puede encontrar aparecer directamente 谷歌
documentan las palabras son: 1,2,3,4,5
. El índice invertido puede registrar no solo la información de ubicación de las palabras clave, sino también la frecuencia de aparición de palabras clave. Por ejemplo, la siguiente figura Wave
aparece una vez en el documento 4, una vez 拉斯
en el documento 3 y una vez en el documento 5.
Al mostrar los resultados de la búsqueda, las puntuaciones se puntuarán de acuerdo con el grado de coincidencia del índice. Cuanto mayor sea la puntuación, mayor será la clasificación.
Buscar ahora谷歌加盟网站
Palabra | Documento 1 | Documento 2 | Documento 3 | Documento 4 | Documento 5 |
---|---|---|---|---|---|
* * | * * | * * | * * | * * | |
Unirse | * * | * * | * * | ||
Sitio web | * * |
De acuerdo con la distribución de asteriscos en el cuadro anterior, el documento 5 tiene la puntuación más alta y el mayor grado de coincidencia.