在Elasticsearch中搜索数组时获取对象

时间:2015-09-09 14:03:15

标签: arrays search elasticsearch jsonobject java-api

我试图从存储在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"中的第一个对象。数组,而不是查询中匹配的数组。

感谢您的帮助!

0 个答案:

没有答案