我试图从存储在elasticsearch中的JSON数组中获取一个对象。布局是这样的:
[
object{}
object{}
object{}
]
当我进行搜索时,我需要点击其中一个对象,以获得它匹配的特定对象。目前,使用我正在搜索的java API:
QueryBuilder qb = QueryBuilders.boolQuery()
.should(QueryBuilders.matchQuery("text", "pottery").boost(5)
.minimumShouldMatch("1"));
SearchResponse response = client.prepareSearch("stuff")
.setTypes("things")
.setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
.setQuery(qb)
.setPostFilter(filter)//.setHighlighterQuery(qb)
.addField("places.numbers")
.addField("name")
.addField("city")
.setFrom(0).setSize(60).setExplain(true)
.execute()
.actionGet();
但是这只会返回我击中的整个对象,或者当我告诉它返回字段时#34; places.numbers"它只返回" palces"中的第一个对象。数组,而不是查询中匹配的数组。
感谢您的帮助!