【问题标题】:Building an ElasticSearch search with exists using pyes使用 pyes 构建 ElasticSearch 搜索
【发布时间】:2012-09-15 17:22:57
【问题描述】:

此示例代码的目标是弄清楚如何创建一个由多个过滤器和查询组成的查询。

以下示例未按预期工作。

  1. 我希望能够仅对包含某个“键”的文档执行搜索。这就是我试图通过 ExistsFilter 达到的目标,但启用时我没有得到任何结果。

有什么办法可以解决这个问题吗?

#!/usr/bin/python

import pyes
conn = pyes.ES('sandbox:9200')
conn.index('{"test":{"field1":"value1","field2":"value2"}}','2012.9.23','test')

filter = pyes.filters.BoolFilter()
filter.add_must(pyes.filters.LimitFilter(1))
filter.add_must(pyes.filters.ExistsFilter('test')) #uncommenting this line returns the documents

query = pyes.query.BoolQuery()
query.add_must(pyes.query.TextQuery('test.field1','value1'))
query.add_must(pyes.query.TextQuery('test.field2','value2'))

search = pyes.query.FilteredQuery(query, filter)

for reference in conn.search(query=search,indices=['2012.9.23']):
    print reference

【问题讨论】:

    标签: python elasticsearch pyes


    【解决方案1】:

    我不使用 pyes(python 也不)。但是,我在这里看到的是,如果我与 ExistsFilter 文档进行比较,ExistsFilter 中似乎会遗漏一些信息:

    {
        "constant_score" : {
            "filter" : {
                "exists" : { "field" : "user" }
            }
        }
    }
    

    这可能是你的问题吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-18
      • 2012-02-18
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多