mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-27 23:49:13 +00:00
inner hits: Fix bug where parse error is thrown if a inner filter is used in a nested filter/query.
Closes #10308
This commit is contained in:
parent
54bfe53d51
commit
1c162ed34a
@ -148,7 +148,7 @@ public class NestedQueryParser implements QueryParser {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (innerHits != null) {
|
if (innerHits != null) {
|
||||||
InnerHitsContext.NestedInnerHits nestedInnerHits = new InnerHitsContext.NestedInnerHits(innerHits.v2(), getInnerQuery(), null, getParentObjectMapper(), nestedObjectMapper);
|
InnerHitsContext.NestedInnerHits nestedInnerHits = new InnerHitsContext.NestedInnerHits(innerHits.v2(), innerQuery, null, getParentObjectMapper(), nestedObjectMapper);
|
||||||
String name = innerHits.v1() != null ? innerHits.v1() : path;
|
String name = innerHits.v1() != null ? innerHits.v1() : path;
|
||||||
parseContext.addInnerHits(name, nestedInnerHits);
|
parseContext.addInnerHits(name, nestedInnerHits);
|
||||||
}
|
}
|
||||||
|
@ -39,6 +39,7 @@ import java.util.Locale;
|
|||||||
import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder;
|
import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder;
|
||||||
import static org.elasticsearch.index.query.FilterBuilders.hasChildFilter;
|
import static org.elasticsearch.index.query.FilterBuilders.hasChildFilter;
|
||||||
import static org.elasticsearch.index.query.FilterBuilders.nestedFilter;
|
import static org.elasticsearch.index.query.FilterBuilders.nestedFilter;
|
||||||
|
import static org.elasticsearch.index.query.FilterBuilders.queryFilter;
|
||||||
import static org.elasticsearch.index.query.QueryBuilders.*;
|
import static org.elasticsearch.index.query.QueryBuilders.*;
|
||||||
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.*;
|
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.*;
|
||||||
import static org.hamcrest.Matchers.*;
|
import static org.hamcrest.Matchers.*;
|
||||||
@ -110,7 +111,9 @@ public class InnerHitsTests extends ElasticsearchIntegrationTest {
|
|||||||
.setQuery(nestedQuery("comments", matchQuery("comments.message", "elephant")))
|
.setQuery(nestedQuery("comments", matchQuery("comments.message", "elephant")))
|
||||||
.addInnerHit("comment", new InnerHitsBuilder.InnerHit().setPath("comments").setQuery(matchQuery("comments.message", "elephant"))).request(),
|
.addInnerHit("comment", new InnerHitsBuilder.InnerHit().setPath("comments").setQuery(matchQuery("comments.message", "elephant"))).request(),
|
||||||
client().prepareSearch("articles")
|
client().prepareSearch("articles")
|
||||||
.setQuery(nestedQuery("comments", matchQuery("comments.message", "elephant")).innerHit(new QueryInnerHitBuilder().setName("comment"))).request()
|
.setQuery(nestedQuery("comments", matchQuery("comments.message", "elephant")).innerHit(new QueryInnerHitBuilder().setName("comment"))).request(),
|
||||||
|
client().prepareSearch("articles")
|
||||||
|
.setQuery(nestedQuery("comments", queryFilter(matchQuery("comments.message", "elephant"))).innerHit(new QueryInnerHitBuilder().setName("comment").addSort("_doc", SortOrder.DESC))).request()
|
||||||
};
|
};
|
||||||
for (SearchRequest searchRequest : searchRequests) {
|
for (SearchRequest searchRequest : searchRequests) {
|
||||||
SearchResponse response = client().search(searchRequest).actionGet();
|
SearchResponse response = client().search(searchRequest).actionGet();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user