-1

curl を実行すると、適切な結果と統計ファセットも表示されますが、Java API では適切な結果が表示されません

    curl  http://localhost:9200/Data/my_data/_search?pretty=true -d '{
"fields" : ["price","total"],
 "query" : {
  "filtered": {
"query":{
 "bool": {
  "must": [
{"term" : { "empId" : "1" }},

{
 "range": {
  "datetime" : {"gte" : "2005-12-23T23:10:52Z", "lte" : "2005-12-23T23:10:56Z" }}
},
{
 "range": {
  "price" : {"gt" : 0 }}
},
{
 "range": {
  "total" : {"gt" : 0 }}
}
  ]
 }
}
  }
 },

 "facets" : {
  "stat1" : {
"statistical" : {
 "field" : "price"
}
  }
 }
}'

以下は私のJavaコードです:

QueryBuilder qb2 = boolQuery()
    .must(termQuery("empId", 1))
    .must(rangeQuery("price").gt(0))
    .must(rangeQuery("total").gt(0))
    .must(rangeQuery("datetime").gte("2005-12-23T23:10:52Z").lte("2005-12-23T23:10:56Z"));

SearchResponse respStats = client.prepareSearch(indexName)
            .setTypes(indexType)
            .setSearchType(SearchType.QUERY_THEN_FETCH)
            .setQuery(QueryBuilders.filteredQuery(qb2 ,null))
            .addFields("empId","price","datetime")
            .addFacet(statisticalFacet("FacetCountStats").field("price"))
            .setFrom(0)
            .setExplain(false)
            .execute()
            .actionGet();

しかし、それは私が望んでいない価格と合計のゼロ値を示しています。

前もって感謝します。

4

1 に答える 1

0

termQuery("empId", 1)すべきではないかどうか疑問に思っていますtermQuery("empId", "1")か?

于 2013-01-31T11:45:34.640 に答える