随笔分类 - elasticsearch
摘要:示例: query = { "query": { "bool": { "must": [ {"term": {"color": "red"}} ], #当must存在的时候,should中的条件是可有可无的,就是must条件满足就行,should的一个都不用满足也可以 #当must不存在的时候,sh
阅读全文
摘要:一.方法一 def update_data_batch(self,actions): """ 批量更新数据 :param actions: :return: """ item_list=[] for data in actions: dic = { "_index": self.index, "_t
阅读全文
摘要:代码: import re import datetime from pyspark.sql import SparkSession from pyspark import SparkContext from elasticsearch import Elasticsearch spark=Spar
阅读全文
摘要:一.为mapping增加字段,但是新增的字段之前数据已经写进索引了,所以,要从新索引 post 127.0.0.1/index/_mapping { "properties":{ "name":{ "type":"keyword" } } } 二.重新索引数据 POST 127.0.0.1/inde
阅读全文
摘要:前言 当索引一个文档的时候,文档会被存储到一个主分片中。那么,elasticsearch如何知道一个文档应该存放到哪个分片中呢? 首先这肯定不是随机的,否则在检索文档时就不知道该从哪去寻找它了。实际上这个过程是根据下面公式决定的: shard = hash(routing) % number_of_
阅读全文
摘要:应用背景:1、当你的数据量过大,而你的索引最初创建的分片数量不足,导致数据入库较慢的情况,此时需要扩大分片的数量,此时可以尝试使用Reindex。 2、当数据的mapping需要修改,但是大量的数据已经导入到索引中了,重新导入数据到新的索引太耗时;但是在ES中,一个字段的mapping在定义并且导入
阅读全文
摘要:在ES中可以为index设置别名,通过别名对index进行操作也可以对多个index设置相同别名, 表示在进行query操作时对多有指定的index进行查询, 但此时不能进行get和put操作 #获取所有别名 GET _cat/aliases?v #获取_index_name模式内所有指定别名为_a
阅读全文
摘要:Elasticsearch的CURD、复杂查询、聚合函数、映射mappings 基本增删改查(CURD) 操作中注意:1.当执行PUT命令时,如果数据不存在,则新增该条数据,如果数据存在则修改该条数据。 2.PUT命令,在做修改操作时,如果未指定其他的属性,则按照指定的属性进行修改操作。 3.POS
阅读全文
摘要:别名解决的问题 在运行的集群中可以从一个索引切换到另一个索引 可以给多个索引进行分组 可以与路由搭配使用 别名的相关操作 准备数据阶段 PUT l1/doc/1 { "title":"我想要睡你" } PUT l2/doc/1 { "title":"你却拿我当兄弟" } PUT l3/doc/1 {
阅读全文
摘要:一.关于别名的操作 es.indices.put_alias,为一个或多个索引创建别名,查询多个索引的时候,可以使用这个别名 print(es.indices.put_alias(index='p3', name='p3_alias')) # 为单个索引创建别名 print(es.indices.p
阅读全文
摘要:1. postman 请求elasticsearch 返回指定字段 1.直接在请求体当中,json 数据,对应的是一个列表 { "_source":['title','id','desc'], "from":10, "size":100,} 至于from和size是浅分页 2. 或者这样 { "_s
阅读全文
摘要:这里以将Apache的日志写入到ElasticSearch为例,来演示一下如何使用Python将Spark数据导入到ES中。 实际工作中,由于数据与使用框架或技术的复杂性,数据的写入变得比较复杂,在这里我们简单演示一下。 如果使用Scala或Java的话,Spark提供自带了支持写入ES的支持库,但
阅读全文
摘要:一.关于集群的基本操作 #!/usr/bin/env python # -*- coding: utf-8 -*- # author tom from elasticsearch import Elasticsearch from pprint import pprint # 连接es,直接传一个i
阅读全文
摘要:当我们使用 Elasticsearch-py 批量插入数据到 ES 的时候,我们常常使用它的 helpers模块里面的bulk函数。其使用方法如下: from elasticsearch import helpers, Elasticsearch es = Elasticsearch(xxx) de
阅读全文
摘要:当我们使用ES批量插入数据的时候,一般会这样写代码: from elasticsearch import Elasticsearch,helpers es =Elasticsearch(hosts=[{'host':'localhost','port':9200}]) def gendata():
阅读全文
摘要:全文搜索属于最常见的需求,开源的 Elasticsearch (以下简称 Elastic)是目前全文搜索引擎的首选。 它可以快速地储存、搜索和分析海量数据。维基百科、Stack Overflow、Github 都采用它。 Elastic 的底层是开源库 Lucene。但是,你没法直接用 Lucene
阅读全文
摘要:Elasticsearch下载地址: https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.1.1-linux-x86_64.tar.gz 解压elasticsearch-7.1.1-linux-x86_64.tar
阅读全文