Como o elasticsearch executa adição, exclusão, modificação e outras operações simples como o MySQL?
aumentar
customer即为索引(对应MySQL数据库)
external为类型(对应MySQL数据库数据库中的表)
1为id(数据库表中的id)
//put
http://192.168.56.10:9200/customer/external/1
Conforme mostrado na figura, a solicitação put, ao carregar o id, inicia uma solicitação várias vezes, substituirá o valor do id anterior e, após várias solicitações serem iniciadas, o número da versão _version continuará a se sobrepor;
//POST请求
http://192.168.56.10:9200/customer/external/
Conforme mostrado na figura, quando a solicitação for postada, se o id não for especificado, ele irá gerar automaticamente o id para nós
excluir
//delete请求
http://192.168.56.10:9200/customer/external/1
mudança
Put request ou post request
Modificação de bloqueio otimista:
toda vez que for modificado, _seq_no será automaticamente sobreposto, fazendo com que outras solicitações verifiquem _seq_no novamente, obtenham o _seq_no correto e concluam a modificação
_primary_term: o fragmento primário é redistribuído, como reiniciar Vai mudar
//put请求
http://192.168.56.10:9200/customer/external/1?_seq_no=1&if_primary_term=1
Se você trouxer _update para modificar o corpo principal, você deve trazer um documento . A diferença entre os dois métodos de escrita é: aquele com DOC irá primeiro determinar se o conteúdo dos dados é consistente com o conteúdo modificado. Se for consistente, não operação será realizada ( com os dados originais). Para comparação )
//post请求
POST customer/external/1/_update
{
"doc":
{
"name":"zhangsan"}
}
//而这种不会对比原来数据,直接发请求修改
POST customer/external/1
{
{
"name":"zhangsan"}
}
Verifica
//get请求
http://192.168.56.10:9200/customer/external/1
Operação em lote
POST /customer/external/_bulk
{
"index":{
"_id":"1"}}
{
"name":"John Don"}
{
"index":{
"_id":"2"}}
{
"name":"John Don"}
levou: o mundo gastou para realizar esses
erros de operações : falso, todas essas operações foram
itens de sucesso : o status de execução de cada registro
Busca Avançada
ES oferece suporte a 2 maneiras de pesquisar
- Enviar parâmetros de pesquisa por meio de url de solicitação REST (url + parâmetros de pesquisa)
- Por meio do corpo da solicitação REST (url + corpo da solicitação)
- URL de solicitação REST Enviar parâmetros de pesquisa (url + parâmetros de pesquisa)
//q=*: 查询bank索引下的所有数据
//sort=account_number:asc查出数据按照account_number进行升序拍列
GET /bank/_search?q=*&sort=account_number:asc
- _shards: Explique o que cada fragmento faz para recuperação no caso de um cluster
- hits: o registro do hit. O resultado da consulta
Documento oficial ES Para a
função específica de cada atributo, consulte os
dados de teste do documento oficial . Os
códigos a seguir são baseados em dados de teste!
2. Corpo da solicitação REST (url + corpo da solicitação)
//query:查询条件
//sort:排序条件
GET /bank/_search
{
"query": {
"match_all": {
} },
"sort": [
{
"account_number": "asc"
},
{
"balance": "desc"
}
],
"from": 10,//从第10条记录开始查询
"size": 10,//查10条记录
"_source": ["balance","firstname"]//返回的字段
}
- Corresponder consulta (correspondência)
pesquisa de texto completo com correspondência, pesquisa de texto não completo com termo
//精确查询
GET /bank/_search
{
"query": {
"match": {
"account_number": "20"
}
}
}
//模糊查询
{
"query": {
"match": {
"address": "mill lane"//字符串
//"address.keyword": "mill lane"精确匹配
}
}
}
Depois de usar a correspondência, podemos ver que o atributo de pontuação máxima tem valor! Quando
a consulta difusa, a pontuação é diferente! Os resultados da consulta também serão classificados de alto a baixo.
- Consulta de correspondência (correspondência de frase match_phrase)
GET /bank/_search
{
"query": {
//match_phrase:将mill lane看做一个单词进行匹配
"match_phrase": {
"address": "mill lane"
}
}
}
- Correspondência de vários campos
//查询"address","city"中包含"mill"的记录
GET /bank/_search
{
"query": {
"multi_match": {
"query": "mill",
"fields": ["address","city"]
}
}
}
- Consulta composta
GET /bank/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"age": "40" } }
],
"must_not": [
{
"match": {
"state": "ID" } }
]
}
}
}
O filtro é semelhante à correspondência, mas o filtro não sobrepõe as pontuações de relevância! Para
consultas mais avançadas, consulte a documentação oficial do ES