elasticsearch 数据 可以通过 elastic的工具 同步到mysql里吗?
tongchuan1992 回复了问题 • 2 人关注 • 1 个回复 • 1157 次浏览 • 2021-09-08 15:48
该调整ES的哪个参数呢?[parent] data for [indices:data/read/get[s]] would be [1026125200/978.5mb]
tongchuan1992 回复了问题 • 2 人关注 • 1 个回复 • 2137 次浏览 • 2021-09-07 10:45
ES查询排序性能问题,使用From Size和Search After差距巨大
wanghaiyu1997 回复了问题 • 3 人关注 • 4 个回复 • 3766 次浏览 • 2021-09-08 22:40
自定义词库更新了, 新词查不到历史数据 , 索引重建就可以了, 请问有没有好方法吗?
CurryQin 回复了问题 • 2 人关注 • 1 个回复 • 1433 次浏览 • 2021-09-02 14:43
ES 生产JVM堆内存 优化问题
spoofer 回复了问题 • 3 人关注 • 2 个回复 • 1700 次浏览 • 2021-09-17 17:17
复杂检索,复杂聚合,带数量限制
kirito 回复了问题 • 2 人关注 • 1 个回复 • 2470 次浏览 • 2021-09-09 15:05
Elasticsearch:分页搜索结果
liuxg 发表了文章 • 0 个评论 • 1483 次浏览 • 2021-08-30 12:31
默认情况下,搜索会返回前 10 个匹配的匹配项。 要翻阅更大的结果集,你可以使用搜索 API 的 from 和 size 参数。 from 参数定义要跳过的命中数,默认为 0。 size 参数是要返回的最大命中数。 这两个参数共同定义了一页结果。比如:
GET /twitter/_search
{
"from": 5,
"size": 20,
"query": {
"match": {
"city": "北京"
}
}
}
避免使用 from 和 size 来分页太深或一次请求太多结果。 搜索请求通常跨越多个分片。 每个分片必须将其请求的命中和任何先前页面的命中加载到内存中。 对于深页面或大型结果集,这些操作会显着增加内存和 CPU 使用率,从而导致性能下降或节点故障。这里的原因是 index.max_result_window 的默认值是 10K,也就是说 from+size 的最大值是1万。搜索请求占用堆内存和时间与 from+size 成比例,这限制了内存。假如你想 hit 从 990 到 1000,那么每个 shard 至少需要 1000 个文档:
原文链接:https://elasticstack.blog.csdn ... 32811
关于Elasticsearch nested类型返回数据会比实际多的情况怎么解决?
lijianghu 回复了问题 • 2 人关注 • 1 个回复 • 1373 次浏览 • 2021-09-14 10:49
使用fdfs作为仓库做快照,如何优化速度?
tongchuan1992 回复了问题 • 2 人关注 • 1 个回复 • 1510 次浏览 • 2021-08-30 13:57
两个索引之间如何关联筛选?
kirito 回复了问题 • 3 人关注 • 2 个回复 • 1730 次浏览 • 2021-09-07 14:53
在银河麒麟的系统上部署Elastic Search
binzaijun 回复了问题 • 2 人关注 • 3 个回复 • 2306 次浏览 • 2021-08-31 13:37
ik分词+拼音分词高亮范围扩大
yuechen323 回复了问题 • 2 人关注 • 1 个回复 • 1230 次浏览 • 2021-08-31 15:57
使用 Elasticsearch 时间点读取器获得随时间推移而保持一致的数据视图
liuxg 发表了文章 • 0 个评论 • 1316 次浏览 • 2021-08-26 10:05
大多数数据都不断变化。在 Elasticsearch 中查询索引,实际上是在一个给定的时间点搜索数据。由于索引不断变化(在大多数可观测性和安全性用例中皆如此),在不同的时间执行两个相同的查询将返回不同的结果,因为数据会随着时间而变化。那么,如果需要消除时间变量的影响,该怎么做呢?
Elasticsearch 7.10 中引入的时间点读取器可以让您反复查询某个索引,仿佛该索引处于某个特定的时间点。
从这个高度概括的介绍看,时间点功能似乎与滚动 API 类似,后者会检索下一批结果以完成滚动搜索。但两者间有一个微妙的差别,可以清楚表明为何时间点在未来将是“有状态”查询不可或缺的部分。
https://elasticstack.blog.csdn ... 25187
将ES索引从一个集群迁移到另一个集群的python脚本
森 发表了文章 • 2 个评论 • 2077 次浏览 • 2021-08-25 17:20
将索引从一个集群(ip:192.168.0.1)迁移到另一个集群(ip:192.168.0.2),新集群需要配置白名单:
```ymlelasticsearch.yml
reindex.remote.whitelist: ['192.168.0.1:9200']
<br /> <br />
python
import json
import requests
import base64
迁移索引数据
def reindex(index):
print("{0} 索引正在迁移中".format(index))
jsonData = {
"source": {
"remote": {
"host": "<a href="http://192.168.0.1:9200"" rel="nofollow" target="_blank">http://192.168.0.1:9200",
"socket_timeout": "30s",
"connect_timeout": "30s",
"username": "elastic",
"password": "123456"
},
"index": index
},
"dest": {
"index": index
}
}
res = requests.post("<a href="http://192.168.0.2:9200/_reindex"" rel="nofollow" target="_blank">http://192.168.0.2:9200/_reindex", json=jsonData)
print(res.status_code)
print(res.content)
获取创建索引的语句
def getIndexDslJson(index):
username = "elastic"
password = "123456"
user_info_str = username + ":" + password
user_info = base64.b64encode(user_info_str.encode()) # 这个得到是个字节类型的数据
headers = {
"Authorization": "Basic {0}".format(user_info.decode()) # 这个就是需要验证的信息
}
res = requests.get("http://192.168.0.1:9200/{0}".format(index),
headers=headers)
print(res.status_code)
jsonIndex = json.loads(res.content)
print(jsonIndex[index])
del jsonIndex[index]['settings']['index']['creation_date']
del jsonIndex[index]['settings']['index']['provided_name']
del jsonIndex[index]['settings']['index']['uuid']
del jsonIndex[index]['settings']['index']['version']
jsonIndex[index]['settings']['index']['number_of_shards'] = 1
jsonIndex[index]['settings']['index']['number_of_replicas'] = 0
return jsonIndex[index]
创建索引
def createIndex(index, dslJson):
res = requests.put("http://192.168.0.2:9200/{0}".format(index), json=dslJson)
print(res.status_code)
print(res.content)
if name == 'main':需要创建的索引
indexList = [
"index1_v1", "index2_v1"
]
for index in indexList:
dslJson = getIndexDslJson(index) # 获取原索引的结构
createIndex(index, dslJson) # 根据原索引结构,在新集群创建索引
reindex(index) # 将原集群索引迁移到新集群
```