问题标签 [elasticsearch-py]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Elasticsearch如何查询高于x的ID字段
我正在尝试通过多次查询来将分页应用于结果以超过 Elasticsearch 的 10k 障碍。由于 Elasticsearch 的结果在多个查询期间可能不同,我想使用生成的 ID 来获取下一个结果。
例如,我运行一个返回 1000 个结果的查询。然后我想获取第 1000 个结果的 ID 值,并执行如下查询: match : ID {{1000thID}}
这样我想得到 1001 到 2000 的结果。从 2001 年到 3000 年,以此类推。
我目前使用 Elasticsearch DSL for python 来查询域名,例如:
如何重建此代码以匹配上述要求。('匹配',_ID > ID_Variable)
elasticsearch - 向嵌套对象添加新字段
弹性搜索 2.3.3
我无法通过更新API 将新字段添加到现有文档中。我怎样才能添加它?
您可以在下面看到用于文档更新的Elasticsearch Python API脚本。更新查询被分配给query
变量。
我使用嵌套对象。更新非嵌套字段没有问题。
一段 Elasticsearch 文档:
一段 Elasticsearch 映射:
更新运行后出现以下错误:
python - 多次查询 Elasticsearch 时响应为空
我编写了一个脚本来使用嵌套查询和elaticsearch-dsl-py获取一些数据。
在我添加while ids_left > 0
循环以从 Elasticsearch 中获取数据之前,一切都运行良好。
现在我response
只为第一个块获取数据。而且我<Response: []>
对所有连续的块都有空响应。
这是为什么?如何获取每个块的响应数据?
打印结果:
偏移量 0 查询
响应数据:
OFFSET 10 查询
python - elasticsearch-py 使用源过滤器搜索
我正在使用 elasticsearch-py(es 版本为 2.3),并希望仅从索引中的所有文档中返回“标题”字段,其中包含以下映射:演员、导演、流派、情节、标题、年份。
我目前正在尝试messages = es.search(index="movies", _source=['hits.hits.title'])
,结果是:
{u'hits': {u'hits': [{u'_score': 1.0, u'_type': u'movie', u'_id': u'tt0116996', u'_source': {}, u'_index': u'movies'}, {u'_score': 1.0, u'_type': u'movie', u'_id': u'1', u'_source': {}, u'_index': u'movies'}], u'total': 2, u'max_score': 1.0}, u'_shards': {u'successful': 1, u'failed': 0, u'total': 1}, u'took': 2, u'timed_out': False}
我尝试了不同版本的过滤器路径和源字段列表,但似乎无法正确处理。
elasticsearch - 在 elastisearch 客户端中使用 filter_path 和 helpers.scan
在弹性搜索中执行搜索操作时,我希望过滤掉元数据并在响应中仅返回“_source”。我可以通过以下方式通过“搜索”实现相同的目的:
out1 = es.search(index='index.com', filter_path=['hits.hits._id', 'hits.hits._source'])
但是当我对 scan 方法做同样的事情时,它只会返回一个空列表:
out2 = helpers.scan(es, query, index='index.com', doc_type='2016-07-27',filter_path= ['hits.hits._source'])
问题可能与我处理“扫描”方法响应的方式或我将值传递给 filter_path 的方式有关。为了检查输出,我将 out2 解析为一个列表。
python - elasticsearch-dsl - 在 python 中聚合收集平均值
我正在尝试使用 elasticsearch-dsl 库,但不幸的是它没有很好的记录。
我有以下过滤器,它有效。
首先,我发现我需要搜索多远。
然后我用过滤器运行我的搜索
在此之后,我应该需要运行一些 aggs。我有以下但它不起作用:
它只是返回:
平均(字段='询问')
我还需要它来进行有趣的计算,而不仅仅是简单的计算。我需要问 + (spread / 2)
IE
s = s.aggs.bucket('average', 'avg', field='ask + (spread / 2')
有没有人有任何想法?
当我们在这里时,我需要将其扩展为整数类型,它目前是一个字符串。我首先使用python创建索引;我很高兴删除我的索引并重新开始,但我不知道如何在创建时在 python 中指定字段类型。
python - elasticsearch python update_by_query
我一直在尝试使用 python 中提供的 update_by_query 功能
问题:我收到以下错误。elastcisearch python模块甚至支持update_by_query吗?
然而,使用弹性搜索的直接休息调用工作正常。
python - Python弹性搜索范围查询
我知道除了这个之外,还有几个用于 python 的替代 elasticsearch 客户端。但是,我无权访问这些。如何编写具有“小于或等于”时间戳逻辑的查询?我目前的做法是:
这是一种非常笨拙的做法。有没有一种方法可以让我的查询生成使用字符串并包含一个范围?
python - 在 Python 的 FacetedSearch 中暂时禁用构面
我FacetedSearch
使用 Pythons Elasticsearch DSL 库创建了自己的自定义类,以在def search(self)
. 现在我想重用我的类来做一些统计聚合。为了保持干燥,我想重用这个类,出于性能原因,我想在不需要时暂时禁用构面计算,同时保留所有过滤。所以问题是如何在FacetedSearch
搜索中暂时省略构面?
python - Python elasticsearch helpers.bulk 错误地失败了?(缺少脚本或文档)
在 python 函数中使用以下有效负载
当我使用 helpers.bulk() 时,python 的 elasticsearch 出现以下错误
这到底是怎么回事?此数组中的每个元素都有一个脚本标记。该功能本身已经在许多其他情况下工作,只是不是这个和其他几个。
在 shell 中手动运行它可以工作,但不能在这个函数中运行?
功能如下:
我目前正在外壳中运行它。我什至放了两行:
并在 shell 中运行
所以它有效吗?相同的有效载荷?一样的功能?刚才它住在函数之外?考虑到这些问题,我什至不能确信这个库会在生产中工作。