3

このサンプルコードの目的は、複数のフィルターとクエリで構成されるクエリを作成する方法を理解することです。

以下の例は期待どおりに機能していません。

  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
4

1 に答える 1

0

私はpyesを使用しません(どちらもpythonも使用しません)。しかし、ここでわかるのは、ExistsFilterのドキュメントと比較すると、いくつかの情報が ExistsFilter で欠落しているように見えるということです。

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

それはあなたの問題でしょうか?

于 2012-09-26T09:50:53.573 に答える