问题标签 [elasticsearch-dsl-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 回答
55 浏览

python-3.x - 如何使用 elasticsearch_dsl 按地理聚合?

如果我将客户位置存储为 geo_point 数据类型(纬度/经度),并且我需要确定按 geo_point 位置分组的 doc_count,那么 elasticsearch_dsl 语法是什么?

0 投票
1 回答
1032 浏览

elasticsearch - Pythons Elasticsearch-DSL 过滤器从值列表中精确匹配一个

我看到了一些相关的帖子,但没有一个符合我的确切问题。

使用 Python 2.7 和 Elasticsearch-dsl(6.3,这也是我的 Elasticsearch 版本)。

我想做类似的事情,

s = Search(using=elastic_conn, index='my_index').filter("match", service_name=['exmp_name1', 'exmp_name2'])

但是这种语法不起作用。

service_name == 'exmp_name1'我希望用OR取回所有文件service_name == 'exmp_name2'

我更喜欢使用过滤器上下文而不是查询上下文,因为据我了解它更快并且评分对我来说真的不重要,只是绝对匹配(或不匹配)。

我怎样才能实现这种行为?

谢谢

0 投票
1 回答
157 浏览

python - 不同类型映射器的 Django Elasticsearch DSL TransportError

我正在使用 Python(3.6)、Django(2.1)、ElasticSearch(5.1.1) 和 Elasticsearch-dsl(5.4.0) 开展一个项目,我需要在其中实现搜索功能。

这是我尝试过的:

来自models.py:

来自 serach.py​​:

当我尝试运行 bulk_indexing 函数时,它返回如下错误:

_raise_error 中的文件“/Users/abdul/PycharmProjects/Dmitry/DVirEnv/lib/python3.6/site-packages/elasticsearch/connection/base.py”,第 125 行引发 HTTP_EXCEPTIONS.get(status_code, TransportError)(status_code, error_message , 附加信息)

elasticsearch.exceptions.RequestError:TransportError(400,'illegal_argument_exception','不同类型的映射器[zip_codes],current_type [integer],merged_type [text]')

我尝试将zip_code类型更改为IntegerField模型但没有成功。

这里有什么问题?

提前致谢!

0 投票
1 回答
442 浏览

python - 具有 phash 汉明距离的 Elasticsearch 聚合

尝试将具有匹配关键字字段值和相关图像的阶段的相似文档组合在一起。目前,我有以下内容适用于完全匹配的阶段

然而,有些图像略有不同,phash 的重点是您可以使用汉明距离来计算不同之处

我意识到这可能会使计算变得更加昂贵,因为本质上需要将每个图像与所有其他图像进行比较,这似乎过度但不确定我还能如何解决这个问题。谢谢

0 投票
0 回答
169 浏览

elasticsearch - 使用 Elasticsearch 根据优先级获取相关搜索结果

我对弹性搜索相当陌生,希望在我的 JSON 格式数据库上进行自然语言搜索,优先考虑特定键并根据优先级获得相关结果。

我尝试使用 Kibana 进行搜索,但搜索栏只接受查询语言。我无法将自然语言搜索转换为查询。

示例 - 如果用户搜索what is income?then income(还应检查子字符串)必须使用 nlp 处理器提取 then (如果给予key1and优先级key2),则必须检查它"key1" : "income"是否"key2" : "income"匹配,如果匹配,则必须显示结果。

0 投票
2 回答
1576 浏览

elasticsearch - 弹性搜索查询的单位,用于获取从任意点到 Geopoint 的距离

我有一个 django 项目,它使用elasticsearch 6.5.3来索引商店中的产品,并将位置作为 GeoPoints。我正在尝试查询此索引并计算任意点之间的距离,例如用户的位置到每个哦这些结果。

我正在使用 elasticsearch_dsl,我的代码如下所示:

这给了我看起来像这样的价值观:

但我不确定它的单位。通过使用https://www.nhc.noaa.gov/gccalc.shtml中的在线距离计算器,我得到的距离约为 123 公里,看起来价值以米为单位。

所以:

1. 我在哪里可以找到有关其单位的一些明确答案?

请指出这些方法的相关文档。我也很想知道是否有办法指定方法调用中结果的预期单位。

2.在python中有没有更好的方法来做到这一点?

0 投票
1 回答
109 浏览

elasticsearch - 弹性搜索 - example.com 与示例

我们正在使用弹性搜索 5.6.9 来支持 Django 1.11 服务器上的搜索。

如果我正在索引数据example.com并搜索,example.com我会得到搜索结果,但如果我正在搜索,example我不会得到任何搜索结果。

理想情况下,我希望example两者example.com都工作并返回相同的搜索结果。

我怎样才能得到这种行为?

我认为我将不得不更改相同的分析器和标记器。

使用simple分析器似乎是正确的做法。例如: POST _analyze { "analyzer": "simple", "text": "example.com" } 返回examplecom作为单独的令牌 { "tokens": [ { "token": "example", "start_offset": 0, "end_offset": 7, "type": "word", "position": 0 }, { "token": "com", "start_offset": 8, "end_offset": 11, "type": "word", "position": 1 } ] }

我认为我必须在索引数据和搜索时设置相同的分析器/标记器。

我尝试按照此处所述设置为:analyzerhttps ://www.elastic.co/guide/en/elasticsearch/reference/5.6/analyzer.html 但是,现在我仍然需要搜索而不是,而且现在我不需要在搜索结果中查看任何内容。simpleexample.comexamplehighlight

我很困惑这是如何导致搜索结果而不是highlight.

我完全不在这儿吗?

0 投票
1 回答
692 浏览

elasticsearch - 使用 elasticsearch dsl 的 3 级嵌套布尔查询

使用 ES 6.1、Python 3 和 elasticsearch-dsl,我得到了具有此映射的文档:

例如:

我可以成功查询 2 级(prop_b)属性“标题”,例如:

我已经尝试了很多方法来进入下一个级别(prop_bx),我最好的方法是这个,但它得到“400 failed to create query”:

在文档中找不到答案甚至线索。我可以用标准的更详细的查询表单来编写它并使用 .from_dict() 方法进行转换,但是为什么还要麻烦将其转换为 elasticsearch-dsl 呢?

线索?谢谢。

0 投票
1 回答
2506 浏览

elasticsearch - 如何在 Elasticsearch 中将术语查询和布尔查询组合在一起

最初,我会filter在 bool 查询中添加一个。但是,当我转向 时terms filter文件表明现在应该更换它terms query。所以我理解这一点,因为我们需要用 和 构造一个复合terms query查询bool query。如果我是正确的,我应该如何编写查询?

注意:我使用 elasticsearch 的 Python API。

0 投票
1 回答
532 浏览

elasticsearch - 过滤文档以匹配嵌套弹性搜索字段中的两个字段中的任何一个

我在 elasticsearch 的文档中有一个名为 tags 的字段,结构如下。

我现在运行一个带有列表的过滤器。例如[10, 9]。我只想过滤那些包含 id 或相关列表中所有项目的文档。如果我用 搜索[9, 8],应该返回上面的文档。如果我使用 搜索[9, 12],则不应返回上述文档,因为 12 既不存在于 id 也不存在于相关中。

我尝试使用术语过滤器,但它只是做或。是否有任何技术可以实现上述目标。

此外,我想为包含 id 中给定项目的文档提供比包含related.