通过以下步骤安装必要的Python库:
$ pip install elasticsearch
连接到Elasticsearch,创建一个文档(例如,数据条目),然后使用Elasticsearch对文档进行“索引”。
from datetime import datetime from elasticsearch import Elasticsearch # Connect to Elasticsearch using default options (localhost:9200) es = Elasticsearch() # Define a simple Dictionary object that we'll index to make a document in ES doc = { 'author': 'kimchy', 'text': 'Elasticsearch: cool. bonsai cool.', 'timestamp': datetime.now(), } # Write a document res = es.index(index="test-index", doc_type='tweet', id=1, body=doc) print(res['created']) # Fetch the document res = es.get(index="test-index", doc_type='tweet', id=1) print(res['_source']) # Refresh the specified index (or indices) to guarantee that the document # is searchable (avoid race conditions with near realtime search) es.indices.refresh(index="test-index") # Search for the document res = es.search(index="test-index", body={"query": {"match_all": {}}}) print("Got %d Hits:" % res['hits']['total']) # Show each "hit" or search response (max of 10 by default) for hit in res['hits']['hits']: print("%(timestamp)s %(author)s: %(text)s" % hit["_source"])
> 下载了。90.6,解压缩,将弹性搜索移动到/usr/share/elasticsearch(在centosx64 6.4上具有chmod 777-r权限),将集群重命名为somethingdupd,并启动服务器。 根据文档,我应该能够做到这一点。但它也什么也不做:
问题内容: 我有一个社交模型,用户可以在其中喜欢照片。 我的照片文档如下所示: 我的问题是,只要照片得到其他用户的喜欢,我就必须更新我的文档。此更新是否使Elasticsearch自动为其重新编制索引(知道“ likes”属性未在我的映射中编制索引)还是仅在我的索引属性已更改时才完成? 我关心的是这里的表现。 问题答案: elasticsearch中的文档是不可变的。更新文档始终是重新索引,并且包
问题内容: 我需要为索引中的所有文档添加一个新字段,而无需下拉文档并将其推回备份(这将需要大约一天的时间)。是否可以使用_BULK API实现此目的? 我还研究了update_by_query插件,似乎只需要将它们拉下并推回自己的位置即可。 问题答案: 是的,批量API支持更新,可以使用部分文档或脚本添加新字段。要遍历文档ID,请执行扫描并在将fields参数设置为空数组的情况下滚动。
问题内容: 我正在尝试了解如何在Elasticsearch中更新索引文档。我不明白它是如何工作的?什么是该API指的是在做什么?假设您有一个带有嵌套文档的文档,您需要做什么来更新它? 删除文档然后索引“已更新”版本与普通更新之间有什么区别? 问题答案: 更新请求从Elasticsearch检索源,对其进行修改并将其索引回Elasticsearch。如果您已经具有使用更新的文档副本,则毫无意义。仅索
问题内容: 我有一个大约2亿个文档的ElasticSearch索引,总索引大小为90Gb。 我更改了映射,所以我希望ElasticSearch重新索引所有文档。 我编写了一个脚本,该脚本创建一个新索引(具有新映射),然后遍历旧索引中的所有文档,然后将其放入新索引中。 它似乎可以工作,但是问题是它的运行速度非常慢。它从两天前以300个文档/分钟开始,现在的速度是150个文档/分钟。 该脚本在elas
问题内容: 我用映射创建了一个新索引。其中存储了500 000个文档。 我想更改索引的映射,但是在elasticsearch中是不可能的。所以我用新的新映射创建了另一个索引,现在我正尝试将文档从旧索引复制到新索引。 我正在使用扫描和滚动类型从旧索引中检索文档并将其复制到新索引。复制需要花费更多时间,并且系统运行缓慢。 下面是我正在使用的代码。 问题答案: 您不必编写类似的代码。周围有一些出色的工具