使用 elasticsearch-dsl-py 对另一个字段中包含的字段创建术语查询

2024-04-19

我在用elasticsearch-dsl-py https://github.com/elasticsearch/elasticsearch-dsl-py并希望过滤包含在另一个术语中的术语,如下所示:

"slug": {
    "foo": "foo-slug",
    "bar": "bar-slug "
}

我所做的是这样的:

search.query(‘filtered’, filter={"term": {"slug.foo": "foo-slug"}})

我更喜欢类似的东西

search.filter(term, slug.foo="foo-slug")

但我不能,因为关键字不能包含点。


如果它对其他人有帮助,我在针对子属性创建此类查询时遇到了同样的问题not使用嵌套对象。我发现解决方案是使用query方法而不是filter method:

search.query('match', **{"slug.foo": "foo-slug"})

这在 ElasticSearch 1.5.2 中对我有用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 elasticsearch-dsl-py 对另一个字段中包含的字段创建术语查询 的相关文章

随机推荐