búsqueda de texto completo Elasticsearch Perfil

contorno

Elasticsearch  (ES) se basa en  Lucene  motor de búsqueda de código abierto que no sólo es estable, fiable y rápido, pero también tiene un buen nivel de escalabilidad, está diseñado específicamente para entornos distribuidos.

propiedad

  • Fácil instalación: no hay otras dependencias, la instalación es fácil después de la descarga; sólo cambian algunos parámetros se puede construir un clúster
  • JSON: Formato de entrada / salida es JSON, significa que ninguna definición de esquema, rápido y conveniente
  • RESTful: Todas las operaciones básicas (índice, consulta, y la configuración incluso) puede llevarse a cabo a través de HTTP interfaz
  • Distribuido: manifestación externa de nodos, etc. (cada nodo se puede utilizar para la entrada); nodos de la adición de equilibrado automáticamente
  • Multi-inquilino: un subíndice para distintos fines; simultáneamente puede operar una pluralidad de índice

Clusters

Uno de los nodos es un proceso ES, múltiples nodos en un clúster. Por lo general, después de cada nodo que ejecuta en diferentes sistemas operativos, configurar los parámetros de clúster ES formarán automáticamente un clúster (modo de detección de nodo también puede ser configurado). Dentro de un grupo seleccionado por el algoritmo principal ES se selecciona entre el nodo maestro (existe la actual versión 1.2 de división problema del cerebro), y está fuera del clúster puede ser operado por cualquier nodo, sub-nodo del maestro-esclavo (rendimiento externa de pares / al centro, a favor del programa del cliente, tales como la reconexión de fallo).

índice

"Índice" tiene dos significados:

  • Como verbo, se refiere a un documento, "Guardar" para procesar la ES, el índice de un documento, podemos utilizar este documento para buscar ES
  • Como sustantivo, se refiere al lugar guardar el documento, el equivalente a un concepto de base de datos de "biblioteca"

Para facilitar la comprensión, podemos ES corresponden a algunos de los conceptos que estamos familiarizados con bases de datos relacionales:

    ES         índice         tipo         expediente    
    DB         almacén          mesa     fila

rebanadas

ES es un sistema distribuido, que debe comenzar a agruparse formas de usarlo. Se seleccionará el tiempo de índice de almacenamiento "apropiado maestro rebanada" (Primaria Shard), en el que el índice almacenado a (rebanada que se puede entender como un área de almacenamiento físico). método de división de la rebanada son fijos, pero la instalación debe ser decidido por el momento (por defecto 5), no se puede cambiar más adelante.

Puesto que el fragmento principal, sin duda es un "de" fragmento, llamado el ES en "una copia del fragmento" (fragmento réplica). Copiar fragmentos tienen dos funciones principales:

  • Disponibilidad: una rebanada, a continuación, el nodo puede estar vinculado a copias de fragmentos tomar otro nodo, los datos anteriormente en rodajas pueden ser restaurados por los otros nodos después de la recuperación nodo
  • Equilibrio de carga: ES buscará automáticamente rutas basadas en el control de carga, cargar una copia de la fragmentación puede ser compartido por igual

un ejemplo

Un contenido para resumir los ejemplos anteriores (véase más adelante en conjunción con la Fig.):

  • 3 ES nodos (es-58/59/60) que consiste en un clúster
  • Al configurar un clúster predeterminado maestro rebanada número 5, shard0 ~ shard4
  • Dentro de este grupo se ha añadido dos index1 índice, index2
  • Estos dos índices son el "índice" (guardar) los dos documentos
  • índice index1 el documento se guarda automáticamente en la ES en la rebanada 2, Loncha el nodo maestro es-58, una copia del fragmento de es-59 nodo
  • índice index2 el documento se guarda automáticamente en la ES en la rebanada 2, Loncha el nodo maestro es-59, una copia del fragmento de es-58 nodo

fragmentos

(Que es una interfaz RESTful ES mediante la interfaz común adquirida será presentado más adelante)

Múltiples usuarios

ES multi-inquilino en pocas palabras, se proporciona a través de un mecanismo de múltiples indexación a utilizar simultáneamente múltiples servicios, cada servicio usa un índice (definida en detalle con respecto a la utilización de múltiples inquilinos, se puede referir aquí ). Ya hemos mencionado el índice puede ser entendida como una biblioteca de base de datos relacional que varios índices se pueden crear varias bibliotecas para comprender los diferentes usos de negocio para un sistema de base de datos.

En el uso real, podemos aislar a sus datos por medio de un índice para cada inquilino, y cada índice puede ser un parámetros de configuración separados (puede ser sintonizado a un inquilino particular), en las que en un escenario típico multi-inquilino muy útiles: por ejemplo, una de nuestras aplicaciones para múltiples usuarios necesitan para proporcionar apoyo en la búsqueda, entonces puede ser indexada de acuerdo con el inquilino de eS, de modo que cada inquilino puede buscar el contenido en su índice.

Sosegado

Esta característica es muy conveniente, el más importante es el ES HTTP interfaz no se pueden también estar configurados sólo las operaciones comerciales (indexación / búsqueda), incluso cerca ES clúster. Aquí presentamos una interfaz muy común algunas de ellas:

  •  _cat / v / nodos :? Compruebe el estado del cluster
  • / _cat / fragmentos v :? Ver estado fragmento
  • / {} Índice / index / {tipo} / _: Búsqueda de la

v es la verbosa media, por lo que puede ser más legible (con la cabecera, con la alineación), _ CAT seguimiento de API relacionadas, / _ gato? ayuda a obtener todas las interfaces. {Índice} y {tipo}, respectivamente, y el índice es un índice es un tipo específico, son jerárquica. También podemos buscar directamente en todos los índices de todos los tipos: / _ buscar.

Glosario oficial

Por último, parte del glosario de traducción oficial a consolidar la comprensión acerca de:

análisis análisis

El análisis es el texto (texto) en el proceso de término de consulta (temporales). El uso de diferentes analizadores, estas tres frases: FOO BAR, Foo-bar, foo, bar es probable que se rompen en palabras de consulta foo y bar. Estas palabras de consulta en realidad se pueden almacenar en el índice. Una vez FoO: de texto completo barra de consulta de (no a consulta) puede analizarse como una foo palabra de consulta, bar, puede coincidir con el término de consulta se almacena en el índice. Este es el proceso de análisis (incluye la indexación y búsqueda), que permite a las consultas de texto pueden ser ES.

racimo racimo

Uno o más nodos de la agrupación tienen el mismo nombre formar un clúster. Cada grupo elegirá automáticamente un nodo principal si falla el nodo primario, el grupo seleccionará automáticamente un nuevo nodo primario para reemplazar el nodo que ha fallado.

documento de documento

Un documento es un texto JSON almacenada en el ES, se puede entender como una fila de la tabla de base de datos relacional. Cada documento se almacena en el índice, con un tipo de e id. Un documento es un objeto JSON (algunos de los hash de idioma / HashMap / matriz asociativa) que comprende una pluralidad de campos o 0 (pares de clave y valor). El texto original JSON después de que el índice se almacena en el campo _source, la búsqueda se ha completado para devolver el valor por defecto está contenida en este campo.

carné de identidad

Id se utiliza para identificar el documento, un documento de indexación / Tipo / ID debe ser único. Identificación del documento se genera automáticamente (si no se especifica).

campo campo

Un documento contiene una serie de campos, o llamado par clave-valor. El campo de valor puede ser de valor simple (escalar) (por ejemplo, cadena, entero, fecha), también puede ser estructura anidada, tal como una matriz o un objeto. Un campo similar a una tabla de base de datos relacional. Correlacionando cada campo tiene un tipo de campo (que no debe confundirse con el tipo de documento), que describe los tipos de valores que se pueden guardar en este campo, tales como enteros, cadenas, objetos. El mapeo también nos permiten definir cómo el valor de un campo de análisis.

índice índice

Un índice de base de datos es similar a una base de datos relacional, que puede ser mapeado a una variedad de tipos. Un índice es una lógicas corresponde de espacio de nombres a uno o más sectores primarios, puede tener cero o más copias de fragmentos.

mapeo de la cartografía

Una definición de esquema de asignación es similar a una base de datos relacional. Cada índice existe un mapeo que define cada tipo en el índice, y una configuración de índice asociado. Mapeo puede mostrar definido o automáticamente creado cuando está indexado el documento.

nodo nodo

Un nodo es un clúster de instancia es correr. Cuando se prueba, se puede permitir que varios nodos a la vez en el mismo servidor, el entorno de producción, en general, es un nodo en el servidor. Será utilizado cuando el nodo comienza unicast (o multicast) para encontrar el mismo nombre de la agrupación y su propia configuración de clúster, y los intentos de unirse al clúster.

rebanada maestro fragmento primario

Cada documento se almacena en una rebanada maestro. Cuando índice de un documento, que será un principal subíndice en un chip, y luego ponerlo en una copia de cada corte de la loncha maestro. Por defecto, un índice principal cinco rebanadas. Podemos especificar menos o más fragmentos primarios para estirar el número de índice de los documentos que se pueden procesar. Tenga en cuenta que, una vez que se crea el índice, no se puede modificar el número de segmento primario.

fragmento de copia fragmento de réplica

Cada rebanada maestro puede tener cero o más copias de fragmentos. Una copia es una copia de la rebanada rebanada maestro, esto tiene dos razones principales:

  1. Conmutación por error: Cuando la rebanada principal falla, se promoverá una copia del fragmento de los principales fragmentos
  2. Mejorar el rendimiento: la obtención de una solicitud de búsqueda puede ser una copia de la rebanada de maestría o procesamiento rebanada. Por defecto, cada rebanada tiene una copia de la rebanada maestro, el número de copias de los fragmentos puede ser ajustado de forma dinámica. En el mismo nodo, una copia de la rebanada primaria y las rodajas que no se ejecutan al mismo tiempo,

routing

Cuando índice de un documento, se guarda en un segmento principal, selección de sector se hace encaminando el valor hash resultante. Por defecto, el valor de la ruta del documento de identificación, si el documento especificado por el documento de nivel superior, el documento principal de los valores de ID de itinerario (esto es para asegurar que los documentos secundarios y primarios almacenados en el documento son los mismos cortes). Este valor se puede especificar cuando el mapa índice puede ser especificado por el campo de encaminamiento.

fragmento fragmento

Una rebanada es un ejemplo de Lucene, es la gestión subyacente es "unidad de trabajo". Un índice es un espacio de nombres lógico, la fragmentación y dirigido al fragmento de copia principal. La fragmentación del índice principal y el número de copias de fragmentos debe especificar explícitamente el bien, sólo necesitan de procesos y de referencia cruzada en el código de aplicación para su uso, y no implica la fragmentación de interacción. Will configurar todos los nodos en la rebanada Elasticsearch en el clúster, pero el nodo móvil automáticamente cuando un fallo de nodo o fragmentos añaden nuevo nodo.

campo de origen campo de origen

Por defecto, la solicitud de búsqueda y _source retorno adquirir el valor del campo de texto almacenado fuente JSON, lo que nos permite acceder directamente a los datos de origen en los resultados devueltos, sin la necesidad de volver a enviar la solicitud de búsqueda basado en el id. Nota: El índice de cadena JSON volverá intacta, independientemente de si se trata de un JSON válida. Contenido de este campo no se describirá cómo se indexa los datos.

palabras de consulta plazo

Una consulta es una palabra que es el valor exacto de los índices es. Consulta la palabra foo, Foo, FOO es diferente. Puede utilizar las palabras de la consulta a la interfaz de consulta de obtener.

texto texto

Texto (o la llamada completa) es, texto no estructurado normal, por ejemplo, si el presente segmento. Por defecto, el texto será analizado como un término de búsqueda, las palabras de la consulta se almacenan en el índice. Para poder llevar a cabo la búsqueda de texto completo, campos de texto en el índice se analizarán como un término de consulta, consulta de palabras clave en la búsqueda será analizada como un término de consulta, ya sea mediante la comparación de las palabras de consulta para completar la misma búsqueda de texto completo.

tipo tipo

Un tipo es similar a una base de datos relacional en una mesa. Cada tipo tiene una serie de campos que se pueden utilizar para especificar el tipo de documento. Mapping define el documento cómo se analiza cada campo.

referencia

   https://88250.b3log.org/full-text-search-elasticsearch

Publicado 43 artículos originales · ganado elogios 28 · Vistas a 40000 +

Supongo que te gusta

Origin blog.csdn.net/u013380694/article/details/93973912
Recomendado
Clasificación