0
使用Java API,我需要能夠檢索與查詢關聯的字段/突出顯示的字段。因此,我將_all
字段(或*
)添加到查詢中,並將突出顯示的字段添加到響應中。它大部分時間都可以使用,但並不總是如此。這裏是一個片段:彈性搜索:突出顯示的字段並非總是返回
final BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
Arrays.asList(query.split(" "))
.stream()
.map(QueryParser::escape)
.map(x -> String.format("*%s*", x))
.forEach(x -> {
boolQueryBuilder.should(
QueryBuilders.queryStringQuery(x)
.field("_all")
.allowLeadingWildcard(true));
});
SearchResponse response = client
.prepareSearch()
.setSize(10)
.addHighlightedField("*")
.setHighlighterRequireFieldMatch(false)
.setQuery(boolQueryBuilder)
.setHighlighterFragmentSize(40)
.setHighlighterNumOfFragments(40)
.execute()
.actionGet();
上爲什麼field
領域的任何想法還有highlightedField
並不總是在響應訪問因爲它在技術上總是詢問?
嗨,我無法理解。您能否在您的方案中提供虛擬數據的實時示例? –