我在用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(使用前将#替换为@)