python - 使用elasticsearch-dsl-py在子字段(包含在另一个字段中的字段)上创建查询?

标签 python elasticsearch elasticsearch-dsl elasticsearch-query elasticsearch-dsl-py

类似于question
我想在子字段(不是嵌套类型)上创建查询

数据是否为格式

"fs": {
    "used": 1000,
    "mount_point": "/"
 }

answer by aaronfay中所述
我尝试查询
search.query('match', **{"fs.used": 0})

并按预期工作。

但是对于名为mount_point的字段,查询将返回空响应。
search.query('match', **{"fs.mount_point": "/"})

即使我有包含mount_point = '/'的数据。为什么?

最佳答案

您对mount_point字段的映射是什么?您需要该字段的类型为keyword,这意味着没有任何分析器。默认情况下,它将是text,这意味着它将被拆分为单词,而/不是单词,因此将其删除。

关于python - 使用elasticsearch-dsl-py在子字段(包含在另一个字段中的字段)上创建查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42433793/

相关文章:

python - 检测并删除字符串中的子字符串

python - python 中的 Pickle 和 exec

python - Django - 带有复选框的表单小部件,可以在无限制或数字文本框之间进行选择

ruby-on-rails - 从ElasticSearch聚合中排除零值

django - 提取数据 “with Elasticsearch dsl”与 “with Django Rest Framework”

Elasticsearch:访问由 filebeat 创建的多个索引

python - 如何使用 Flask、SQLAlchemy 或 psycopg2 从 Postgres 中的游标获取数据

django - 序列化ManyToMany字段Drf干草堆

带冒号的 Elasticsearch 术语查询

python - ElasticSearch Python 索引和别名创建