Instalación Elasticsearch buscar entorno de middleware acoplable y el uso de las operaciones básicas (ABM, condiciones de búsqueda, búsqueda de texto completo, la frase de búsqueda, la búsqueda resaltado)

I. Introducción

función de búsqueda es una funcionalidad de aplicación muy común y de código abierto Elasticsearch elección para el motor de búsqueda de texto completo

Elasticsearch es un servicio distribuido la investigación del fondo basado en Lucene Lucene conjunto de herramientas de software de código abierto no está disponible directamente
pero elasticsearch equivalente de la misma se encapsula y proporciona API estilo reparador múltiples Shard (fragmentos) también proporciona una manera de garantizar la seguridad de datos función automática de resharding
GitHub y otros grandes sitios también utilizan Elasticsearch como su servicio de búsqueda

Elasticsearch puede buscar y analizar rápidamente grandes cantidades de almacenamiento de datos

En segundo lugar, la instalación

Instalación del estibador manera de
descargar por primera vez la imagen Elasticsearch

# 从阿里云的仓库拉取镜像
docker pull registry.cn-hangzhou.aliyuncs.com/elasticsearch/elasticsearch:6.7.0

A continuación, el recipiente es comenzar
por defecto Elasticsearch 9200puerto para la comunicación entre los nodos respectivos Elasticsearch la comunicación web el caso de un distribuidos 9300puertos

# 启动容器
docker run -d -p 9200:9200 -p 9300:9300 --name ES01 02982be5777d

Luego acceder a la IP del navegador: 9200
Si hay datos sigue un comienzo exitoso:
Aquí Insertar imagen Descripción
Si el caso no puedan acceder al puerto 9200 aparece
ver otro blog que: solución perfecta para la instalación de la máquina virtual de error Elasticsearch: [1]: la memoria virtual de máximo áreas vm .max_map_count [65530] es demasiado baja, aumento

En tercer lugar, el uso

Elasticsearch es [ documento] por el
significado que se almacena en
todo el objeto o documento

elasticsearch no sólo almacenar los documentos y los índices del contenido de cada documento para que pueda ser recuperada
estar en elasticsearch del documento de clasificación de recuperación está indexado y filtrar - - a las filas de los datos en lugar de sólo
la forma en que se trata de una forma completamente diferente de pensar es también datos Elasticsearch para apoyar la causa de la búsqueda de texto completo complejo

Elasticsearch usando JSON (JavaScript Object Notation) formato de serialización del documento como
serializado JSON como la mayoría de los lenguajes de programación soportados y se ha convertido en el formato estándar en el campo de NoSQL que sea sencillo y fácil de leer simple ventaja de peso ligero y multiplataforma

Conceptos básicos:

Los datos almacenados para llevar a cabo Elasticsearch llama [ índice ] pero antes de la indexación de un documento que necesitan para determinar dónde se almacena el documento
(índice aquí es el verbo
índice de un documento se almacena en un documento a un índice con el fin de recuperar y la consulta
es similar a las sentencias SQL la palabra clave INSERT)

Clusters pueden comprender una pluralidad de Elasticsearch [índice] correspondiente a cada índice puede comprender una pluralidad de [Tipo]

Estos diferentes tipos de almacenamiento con una pluralidad de [Documento] tienen cada uno una pluralidad de documento [Propiedades]

(Indexado aquí es un sustantivo como una base de datos relacional tradicional en la base de datos es un lugar para guardar el documento relacional)
Aquí Insertar imagen Descripción
Si el uso de MySQL para la comparación es:

  • Elasticsearch de los índices corresponde a la de MySQL base de datos
  • Elasticsearch el tipo equivalente de MySQL mesa
  • Elasticsearch el documento equivalente a la de MySQL registro
  • Elasticsearch de propiedad equivalente al de MySQL campo

1, CRUD

①, complemento

Para lograr Añadir realmente muy simple
necesidad acaba de enviar una PUTsolicitud al índice especificado para especificar el tipo de depósito en un documento

sintaxis:

PUT请求 ----> ip:端口/索引名称/类型名称/编号

contenido:

{
	要添加的JSON数据
}

Ejemplo:

PUT请求 ----> ip:端口/zjitc/student/1
{
    "id" : "1",
    "name" :  "陈涛"
}

Aquí Insertar imagen Descripción


②, get / consulta

La misma necesidad sólo se envía una GETsolicitud para obtener un documento especificado:
Sintaxis:

GET请求 ----> ip:端口/索引名称/类型名称/编号

Ejemplo:

GET请求 ----> ip:端口/zjitc/student/1

Aquí Insertar imagen Descripción


③, borrado

Enviar una DELETEsolicitud para eliminar un documento especifica
la sintaxis:

DELETE请求 ----> ip:端口/索引名称/类型名称/编号

Ejemplo:

DELETE请求 ----> ip:端口/zjitc/student/3

Aquí Insertar imagen Descripción


④, para determinar si existe

Enviar una HEADsolicitud para determinar si la presencia de documento especificado:
Sintaxis:

HEAD请求 ----> ip:端口/索引名称/类型名称/编号

Ejemplo:

HEAD请求 ----> ip:端口/zjitc/student/3

Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción
Los datos no se devuelve si la presencia de los datos son devueltos 200
si no hay retorno404


⑤, actualizar

PUTTambién se puede utilizar para actualizar el documento
sintaxis:

PUT请求 ----> ip:端口/索引名称/类型名称/编号

contenido:

{
    JSON数据
}

Ejemplo:

PUT请求 ----> ip:端口/zjitc/student/1
{
    "id" : "1",
    "name" :  "王王涛"
}

Aquí Insertar imagen Descripción


2, Búsqueda avanzada

①, Buscar Todos

Utilice _search
casos:

GET请求 ----> ip:端口/zjitc/student/_search

Aquí Insertar imagen Descripción


②, la condición de búsqueda

la sintaxis de línea de comandos

Utilice _search?q=属性名:属性值
casos:

GET请求 ----> ip:端口/zjitc/student/_search?q=id:2

Resultados similares se pueden clasificar según su relevancia Redis anotar SortedSet

Aquí Insertar imagen Descripción


Consulta Expresión Sintaxis

Búsqueda de peso ligero (sintaxis de línea de comandos) puede ser llevado a cabo fácilmente mediante el mando temporal de la búsqueda, pero tiene sus propias limitaciones
Elasticsearch proporciona un lenguaje de consulta poderoso y flexible llamado [ expresión de consulta ] que apoya la construcción de una más sólidas y complejas consultas
los términos de búsqueda individuales:
sintaxis:

POST请求 ----> ip:端口/索引名称/类型名称/_search

contenido:

{
    "query" : {
        "match" : {
            "搜索条件key" : "搜索条件value"
        }
    }
}

Ejemplo:

POST请求 ----> /zjitc/student/_search
{
    "query" : {
        "match" : {
            "id" : "1"
        }
    }
}

Aquí Insertar imagen Descripción


búsqueda compleja (búsqueda en varios criterios):
a resultados de la consulta de filtro mediante la adición de un filtro de
sintaxis:

POST请求 ----> ip:端口/索引名称/类型名称/_search

contenido:

{
    "query" : {
        "bool": {
            "must": {
                "match" : {
                    "首选搜索条件key" : "首选搜索条件value" 
                }
            },
            "filter": {
                "range" : {
                    "次选搜索条件key" : { "判断符" : 次选搜索条件value } 
                }
            }
        }
    }
}

Ejemplo:

POST请求 ----> ip:端口/zjitc/student/_search
{
    "query" : {
        "bool": {
            "must": {
                "match" : {
                    "name" : "涛" 
                }
            },
            "filter": {
                "range" : {
                    "num" : { "gt" : 1 } 
                }
            }
        }
    }
}

Aquí Insertar imagen Descripción


③, búsqueda de texto completo

Mientras el campo de destino contiene el valor de la condición de búsqueda puede revisar la
sintaxis:

POST请求 ----> ip:端口/索引名称/类型名称/_search

contenido:

{
    "query" : {
        "match" : {
            "搜索条件key" : "搜索条件value"
        }
    }
}

Ejemplo:

POST请求 ----> ip:端口/zjitc/student/_search
{
    "query" : {
        "match" : {
            "about" : "rock climbing"
        }
    }
}

Aquí Insertar imagen Descripción


④, buscar frase

La concordancia exacta serie de palabras o frases que
coincidir sólo contiene "la palabra 1" y "2 palabra" y ambos junto a la frase "la palabra 1 palabra 2" se registra en la forma de
la sintaxis:

POST请求 ----> ip:端口/索引名称/类型名称/_search

contenido:

{
    "query" : {
        "match_phrase" : {
            "搜索条件key" : "搜索条件value"
        }
    }
}

Ejemplo:

POST请求 ----> ip:端口/zjitc/student/_search
{
    "query" : {
        "match_phrase" : {
            "hobby" : "watch TV"
        }
    }
}

En el ejemplo anterior coincidirá con los valores de los atributos adjuntos al documento ver la televisión manía
si el reloj con o no se corresponda con el televisor


⑤, destacando la búsqueda

En cada uno de los resultados de búsqueda de relieve algunos de los fragmentos de texto con el fin de permitir que el usuario sabe por qué el documento coinciden con la consulta
sintaxis:

POST请求 ----> ip:端口/索引名称/类型名称/_search

contenido:

{
    "query" : {
        "match_phrase" : {
            "搜索条件key" : "搜索条件value"
        }
    },
    "highlight": {
        "fields" : {
            "要高亮的属性名" : {}
        }
    }
}

Ejemplo:

POST请求 ----> ip:端口/zjitc/student/_search
{
    "query" : {
        "match_phrase" : {
            "name" : "涛"
        }
    },
    "highlight": {
        "fields" : {
            "name" : {}
        }
    }
}

Aquí Insertar imagen Descripción


Publicados 176 artículos originales · ganado elogios 5 · Vistas de 300.000 +

Supongo que te gusta

Origin blog.csdn.net/Piconjo/article/details/105279672
Recomendado
Clasificación