0

I am using elasticsearch-1.7.1 and java dependency is

<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>1.7.1</version>

Problem : I am using in a clause in ES but when I query ES with filtered query it is giving me a null response.

contentQuery = boolQuery().must(QueryBuilders.matchQuery(PROPERTY_BOOK_ID, bookId).operator(Operator.AND))
             .must(QueryBuilders.matchQuery("contentType", "enrichments").operator(Operator.AND))
             .must(contentQuery);   

FilteredQueryBuilder builder = 
             QueryBuilders.filteredQuery(contentQuery, FilterBuilders.termFilter("spineId","chapter04.html"));

searchResponse = searchClientService.getClient()
                .prepareSearch(INDEX_NAME).setTypes(INDEX_TYPE)
                .setQuery(builder)
                .execute().actionGet();

without a filter, it is working fine. Can anyone please suggest how to apply a filter to the query or let me know if am going anywhere wrong while making the requests.

Query Details :

{
  "filtered" : {
    "query" : {
      "bool" : {
        "must" : [ {
          "match" : {
            "bookId" : {
              "query" : "d563739c-8b46-449b-b695-d662cb32087d",
              "type" : "boolean",
              "operator" : "AND"
            }
          }
        }, {
          "match" : {
            "contentType" : {
              "query" : "enrichments",
              "type" : "boolean",
              "operator" : "AND"
            }
          }
        }, {
          "bool" : {
            "must" : {
              "match" : {
                "content" : {
                  "query" : "resources*",
                  "type" : "phrase_prefix"
                }
              }
            }
          }
        } ]
      }
    },
    "filter" : {
      "term" : {
        "spineId" : "chapter04.html"
      }
    }
  }
}

I've also tried other filter queries on my index, none of them is working.Below query must return some result but its returning empty result.

{
  "filtered" : {
    "query" : {
      "match_all" : { }
    },
    "filter" : {
      "bool" : {
        "must" : {
          "term" : {
            "spineId" : "chapter03.html"
          }
        }
      }
    }
  }
}

Mapping :

 private XContentBuilder buildMapping() throws Exception {
        return jsonBuilder().prettyPrint()
                .startObject()
                    .startObject(indexType)
                        .startObject("properties")
                            .startObject(PROPERTY_SPINE_ID).field("type", "string").field("index", "not_analyzed").endObject()
                        .endObject()
                    .endObject()
                .endObject();
    }
XContentBuilder source = jsonBuilder().startObject();
        source.field(PROPERTY_BOOK_ID, bookId)
        .field(PROPERTY_WIDGET_ID, widgetId)
        .field(PROPERTY_CONTENT, widgetDescription)
        .field(PROPERTY_CONTENT_TYPE, contentType.getValue())
        .field(PROPERTY_META_DATA, widgetJsonString)
        .field(PROPERTY_SPINE_ID, spineId)
        .endObject();

any help greatly appreciated.

Himanshu Arora
  • 688
  • 1
  • 9
  • 20

0 Answers0