问题标签 [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.

0 投票
1 回答
2006 浏览

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)

0 投票
1 回答
1257 浏览

elasticsearch - 向嵌套对象添加新字段

弹性搜索 2.3.3

我无法通过更新API 将新字段添加到现有文档中。我怎样才能添加它?

您可以在下面看到用于文档更新的Elasticsearch Python API脚本。更新查询被分配给query变量。

我使用嵌套对象。更新非嵌套字段没有问题。

一段 Elasticsearch 文档:

一段 Elasticsearch 映射:

更新运行后出现以下错误:

0 投票
1 回答
825 浏览

python - 多次查询 Elasticsearch 时响应为空

我编写了一个脚本来使用嵌套查询和elaticsearch-dsl-py获取一些数据。

在我添加while ids_left > 0循环以从 Elasticsearch 中获取数据之前,一切都运行良好。

现在我response只为第一个块获取数据。而且我<Response: []>对所有连续的块都有空响应。

这是为什么?如何获取每个块的响应数据?

打印结果:

偏移量 0 查询

响应数据:

OFFSET 10 查询

0 投票
3 回答
6083 浏览

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}

我尝试了不同版本的过滤器路径和源字段列表,但似乎无法正确处理。

0 投票
2 回答
1615 浏览

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 解析为一个列表。

0 投票
2 回答
1387 浏览

python - elasticsearch-dsl - 在 python 中聚合收集平均值

我正在尝试使用 elasticsearch-dsl 库,但不幸的是它没有很好的记录。

我有以下过滤器,它有效。

首先,我发现我需要搜索多远。

然后我用过滤器运行我的搜索

在此之后,我应该需要运行一些 aggs。我有以下但它不起作用:

它只是返回:

平均(字段='询问')

我还需要它来进行有趣的计算,而不仅仅是简单的计算。我需要问 + (spread / 2)

IE

s = s.aggs.bucket('average', 'avg', field='ask + (spread / 2')

有没有人有任何想法?

当我们在这里时,我需要将其扩展为整数类型,它目前是一个字符串。我首先使用python创建索引;我很高兴删除我的索引并重新开始,但我不知道如何在创建时在 python 中指定字段类型。

0 投票
0 回答
2773 浏览

python - elasticsearch python update_by_query

我一直在尝试使用 python 中提供的 update_by_query 功能

问题:我收到以下错误。elastcisearch python模块甚至支持update_by_query吗?

然而,使用弹性搜索的直接休息调用工作正常。

0 投票
2 回答
6364 浏览

python - Python弹性搜索范围查询

我知道除了这个之外,还有几个用于 python 的替代 elasticsearch 客户端。但是,我无权访问这些。如何编写具有“小于或等于”时间戳逻辑的查询?我目前的做法是:

这是一种非常笨拙的做法。有没有一种方法可以让我的查询生成使用字符串并包含一个范围?

0 投票
1 回答
98 浏览

python - 在 Python 的 FacetedSearch 中暂时禁用构面

FacetedSearch使用 Pythons Elasticsearch DSL 库创建了自己的自定义类,以在def search(self). 现在我想重用我的类来做一些统计聚合。为了保持干燥,我想重用这个类,出于性能原因,我想在不需要时暂时禁用构面计算,同时保留所有过滤。所以问题是如何在FacetedSearch搜索中暂时省略构面?

0 投票
1 回答
522 浏览

python - Python elasticsearch helpers.bulk 错误地失败了?(缺少脚本或文档)

在 python 函数中使用以下有效负载

当我使用 helpers.bulk() 时,python 的 elasticsearch 出现以下错误

这到底是怎么回事?此数组中的每个元素都有一个脚本标记。该功能本身已经在许多其他情况下工作,只是不是这个和其他几个。

在 shell 中手动运行它可以工作,但不能在这个函数中运行?

功能如下:

我目前正在外壳中运行它。我什至放了两行:

并在 shell 中运行

所以它有效吗?相同的有效载荷?一样的功能?刚才它住在函数之外?考虑到这些问题,我什至不能确信这个库会在生产中工作。